Gå til innhold

replace eller stringbuilder?


Anbefalte innlegg

Jeg holder på med et prosjekt for FDV dokumentasjonl.

 

Der har jeg tenkt å lage en ferdig mal som en .txt fil som inneholder f.eks. &navn, &produkt eller &installert i tillegg til all annen tekst. Filen vil da bli noe slik som.

 

*.txt fil

 

&produkt er installert hos &navn den &installert.

 

-slutt eksempel fil.

 

så når jeg har tatt brukeren av programmet igjennom endel dialogbokser skal jeg da hente inn denne tekstfilen også løpe gjennom den og erstatte alle disse &x med innhold som brukeren har skrevet ut.

 

(dette skal siden bli endel av en printjob men det er en enkel affære)

 

jeg så for meg en løsning som følger

 

dim x as string() = {&navn,&produkt,&installert}

 

dim fil as string = streamreader av text.txt

 

while array har flere elementer

{

løp gjennom text.txt og erstatt alle instanser som matcher den aktuelle søke para.

 

fil.replace(aktuellt søkeord, textbox1.text f.x)

}

 

 

jeg får imidlertid ikke fil.replace til å fungere.

den løper gjennom filen men endrer ingenting.

 

 

noen som har en ide om hva jeg gjør galt?

eventuelt forslag til andre løsninger...

Lenke til kommentar
Videoannonse
Annonse

hmm

 

da fikk jeg det til.. men tankegangen min var kanskje ikke så smart likevel.

 

Dette har jeg så langt ...

 


'konstanter vi søker etter
          Dim konstanter() As String = {"&navn", "&produkt", "&modell"}

While konstanter.Length > x

           test = test.Replace(konstanter(x), TextBox[x].text)
           x = x + 1

End While

 

Som Dere ser var tanken å hente ut riktig tekst til feltene basert på å øke verdien på x også i textbox.text vha. kode. Men - det er ikke gyldig syntax å gjøre det slik. Hva annet kan man finne på her?

Lenke til kommentar
Jeg henger absolutt ikke med på hva det er du skal lage, men...

9365430[/snapback]

 

 

hehe .. jeg kan gjøre et nytt forsøk på å forklare det.

 

Det dreier seg altså om et prosjekt hvor jeg skal lage et program for FDV dokumentasjon (Forvaltning, Drift og Vedlikehold).

Til dette programmet har jeg laget en .txt fil hvis innhold er å anse som en mal for dokumentasjon, bare at det er endel parametere til denne filen som f.eks. kundenavn, type produkt, antall osv. og til å motta disse har jeg laget en enkel form.

 

Når disse feltene er fylt ut så skal altså programmet løpe gjennom malen i .txt filen å erstatte disse parameterene med input fra textboxene i formen.

 

Har jeg foreksempel følgende innhold i text filen ->

 

Dette er en FDV dokumentasjon for &navn, tilhørende prosjekt &prosjekt.

 

 

Så ønsker jeg at programmet løper gjennom denne teksten og erstatter &navn først og deretter &prosjekt (parameterene kan være representert mer enn en gang med samme navn i den ferdige løsningen) med innhold fra textboxene på formen.

 

Altså kan vi få noe slikt som dette

 

array(0) (f.eks. &kundenavn) tilhører teksten i textbox1.text

array(1) (f.eks. &prosjekt) tilhører teksten i textbox2.text

 

derfor trenger jeg altså å løpe gjennom arrayet og samtidig kunne angi at det skal hentes innhold fra textbox[x]....

 

 

hehe .. men eventuelt bedre måter å gjøre dette på mottas med takk... :)

 

 

Tanken er å lage en utskriftsfunksjonalitet av dette, samt at det skal kunne lagres til en database. Imidlertid tenker jeg bare å lagre parameterene til databasen slik at dersom man endrer eller oppdaterer malen så vil man alltid få den siste versjonen når man henter prosjektet opp på nytt.

Lenke til kommentar
  • 2 måneder senere...

Du kan dessverre ikke lage control-arrays i .net slik som du kunne i vb6. Derfor må du lage deg et ekstra array for å ta vare på de tekstene som skal settes inn og populere det først med noe ala

 

replaceValue[0] = txtBoks1.Text

replaceValue[1] = txtBoks2.Text

...

 

Cato

Lenke til kommentar

Du kan lage Control Array i .NET jo :) men du må gjøre det "manuelt"

 

Public Class Form1

Public Sub New()

	' This call is required by the Windows Form Designer.
	InitializeComponent()

	' Add any initialization after the InitializeComponent() call.

	InitializeControlArray()

End Sub

Private Sub InitializeControlArray()

	' Inneholder alle kontrollene som skal legges til
	Dim ButtonArray() As Button
	Dim i As Integer

	' Lag 25 knapper
	ReDim ButtonArray(25)

	' Gå igjennom alle knappene, og tilegn verdier
	For i = 0 To ButtonArray.Length - 1
		' Lag ny knapp
		ButtonArray(i) = New Button()
		With ButtonArray(i)
			' Sett posisjon
			.Location = New Point(4, i * 40)
			' Sett størrelse
			.Size = New Size(120, 30)
			' Legg til tekst
			.Text = "Button " + i.ToString()
			' Legg til nummer på knappen
			.Tag = i
			' Bind Click til ButtonArray_Click rutinen
			AddHandler ButtonArray(i).Click, New EventHandler(AddressOf ButtonArray_Click)
		End With
	Next

	' Legg til alle knappene i formens kontroll-liste.
	Me.Controls.AddRange(ButtonArray)

End Sub

Private Sub ButtonArray_Click(ByVal sender As Object, ByVal e As EventArgs)
	Dim index As Integer = sender.Tag
	MessageBox.Show("You pressed button " + index.ToString())
End Sub
End Class

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...