joenohr Skrevet 26. august 2007 Del Skrevet 26. august 2007 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
j000rn Skrevet 26. august 2007 Del Skrevet 26. august 2007 .Replace erstatter ingenting i den oprinnelige string'en, men den returnerer en ny string med den erstattede teksten. string test = "xbc"; test = test.Replace("x","a"); Lenke til kommentar
joenohr Skrevet 26. august 2007 Forfatter Del Skrevet 26. august 2007 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
Manfred Skrevet 26. august 2007 Del Skrevet 26. august 2007 Jeg henger absolutt ikke med på hva det er du skal lage, men... Lenke til kommentar
joenohr Skrevet 26. august 2007 Forfatter Del Skrevet 26. august 2007 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
nilcat Skrevet 8. november 2007 Del Skrevet 8. november 2007 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
The Jackal Skrevet 8. november 2007 Del Skrevet 8. november 2007 string str = "{0} er {1} test {2}"; Console.WriteLine(string.Format(str,"Dette","en","streng")); Vil skrive ut "Dette er en test streng" i konsollet. Ville altså prøvd å bruke den innebygde funksjonen for formattering. Lenke til kommentar
GeirGrusom Skrevet 8. november 2007 Del Skrevet 8. november 2007 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
Wubbable Skrevet 9. november 2007 Del Skrevet 9. november 2007 (endret) x = x + 1 x += 1 Endret 9. november 2007 av Wubbable Lenke til kommentar
Manfred Skrevet 9. november 2007 Del Skrevet 9. november 2007 x = x + 1 x += 1 x++ Lenke til kommentar
The Jackal Skrevet 9. november 2007 Del Skrevet 9. november 2007 x = x + 1 x += 1 x++ ++x Lenke til kommentar
j000rn Skrevet 9. november 2007 Del Skrevet 9. november 2007 ' Sett posisjon .Location = New Point(4, i * 40) ' Sett størrelse .Size = New Size(120, 30) ' Legg til tekst .Text = "Button " + i.ToString() Så "flink" du er blitt til å kommentere Lenke til kommentar
GeirGrusom Skrevet 9. november 2007 Del Skrevet 9. november 2007 <stolt>Ja, sånn er jeg blitt</stolt> Lenke til kommentar
Wubbable Skrevet 9. november 2007 Del Skrevet 9. november 2007 x = x + 1 x += 1 x++ x += 1 Vi snakker VB nå, ikke C# ^^ Lenke til kommentar
Anbefalte innlegg
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 kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå