Gå til innhold

Lagre utfylt informasjon


Anbefalte innlegg

Får verken til eller forstår hvordan man lagrer utfylt informasjon.

 

F.eks. "Options.frm" har mange forskjellige felter, i rad 1 står det navn (f.eks), og i rad 2 står det adresse (f.eks.).

 

Nederst kan man enten velge "Lagre endringer" eller "Avbryt".

Avbryt er greit, den bruker jeg bare "Unload Me" på.

Men har ingen anelse om hva jeg skal skrive på "Lagre endringer".

 

Trenger jeg en ny form/e.l. for å lagre endringer?

Trenger jeg en separat fil som tar vare på endringene etter den er kompilert?

 

Håper på en GOD forklaring her.

Skal søke litt på Google, så sjekke her igjen, så legge meg. :)

Trenger naturligvis kodene også.

 

[EDIT] Off topic, men..:

Når jeg f.eks. skriver:

Caption = Form2.Text12.text

Så gir VB meg error under kompileringen, derfor fullføres den ikke.

Hvis jeg lagrer etterpå, så er Caption-koden borte. Det virker selvfølgelig hvis jeg setter " på hver side av Form2.Text12.text.

Er det noen annen måte jeg kan få teksten på knappen til å være det som står i Form2 i feltet "Text12"?

Endret av zalo
Lenke til kommentar
Videoannonse
Annonse

En mulighet må jo være å lage en database der du lagrer all informasjonen fra feltene i...

 

Jeg brukte imidlertid en annen løsning i et program jeg lagde (litt uoffisielt) frilans for Thales.

 

Når brukeren trykker på "lagre" så hentes verdiene fra feltene og lagres i en fil adskilt med vbCrLf.

Neste gang programet startes så åpner du filen og kjører den gjennom en parser som går igjennom filen tegn for tegn og lagrer tegnene i en variabel hvis tegnet ikke er "chr(13)" (som er ascii(?) for carriage return). Når den kommer til et tegn som er "chr(13)" så skriver den variabelen til tekstfeltet og tømmer variabelen, (så må den hoppe over et tegn nemlig LineFeed tegnet) og fortsetter å jobbe seg gjennom neste linje på samme måte som den første...

 

Kanskje ikke så godt forklart, men det skal i det minste gå ann å skjønne tankegangen. Jeg kan se om jeg finner noe kode, men jeg vil anbefale deg å prøve å skrive din egen kode...

 

Dette er temmelig basic greier og det tok meg ikke mer en 15-20min å tenke ut og skrive et eksempel som dekket 19-20 felter...

Lenke til kommentar

form1.caption er liksom "navnet" på vinduet i programmet, det som står i hjørne. command1.caption er teksten på en knapp og label1.caption er bare ren tekst i et program. Skjønner?

 

se på den koden her litt:

Private Sub Command1_Click()
Form1.Caption = Text1.Text
End Sub

legg til en tekst boks (text1), en form (form1) og en knapp (command1)

Lenke til kommentar
form1.caption er liksom "navnet" på vinduet i programmet, det som står i hjørne. command1.caption er teksten på en knapp og label1.caption er bare ren tekst i et program. Skjønner?

 

se på den koden her litt:

Private Sub Command1_Click()
Form1.Caption = Text1.Text
End Sub

legg til en tekst boks (text1), en form (form1) og en knapp (command1)

Tok ikke så lang tid før jeg fikk roet ned litt. :)

 

Så på koden din, fant ut følgende:

Man skriver noe i "Text1", trykker på "Command1" og caption på Form1 blir det man har skrevet.

 

Første leksjon fullført. :D

Lenke til kommentar
:thumbs: Noe mer?

Ganske grei måte det der. Men det forutsetter at jeg TRYKKER på knappen før Caption'en forandres.

 

Noen mulighet for å få den til å autmatisk bytte når man skriver inn teksten i feltet, eller når man trykker "Lagre endringer"?

 

Vanskelig det her. :(

Jobber fortsatt litt med koden for å lagre endringer, men er kanskje en fordel å få det her andre til å funke først. :cry:

Lenke til kommentar

Private Sub Text1_Change()
Form1.Caption = Text1.Text
End Sub

Sånn?

 

Hvis du skal lagre endringer så var noe som het 'freefile' eller noe sånt som jeg ikke helt kan. Eller du kan lagre det i en tekst fil og åpne den :roll:

 

Skal finne koden for lagring i tekst fil, to sec

 

Edit:

 

Open "C:\navn.txt" For Output As #1
Print #1, Text1.Text
Close #1

for å lagre noe

 

RichTextBox1.LoadFile "C:\navn.txt"

Åpne filen. du må legge til RichTextBox: Høyreklikk på den menyen med alle tingene du kan sette inn, components, microsoft RichTextBox controll

Endret av jonas22282460
Lenke til kommentar

Jonas: Du er en "daysaver". ;)

 

Funker å lagre.

Men skjønner ikke helt dette med å loade innstillingene.

 

All teksten og dette skal loades ved start i to vinduer, Form1 og Form2.

Form 1 er "main", og Form2 er sånn "Options"-rute.

Nå skal Form1 (main) inneholde 8 knapper, hver knapp har sin egen tekst som hentes fra Form2 (som igjen henter fra txt-filen). Hver knapp i Form1 har også sin egen kommando, altså alle skal åpne hvert sitt program.

Hvordan får jeg til at hvert tekst-felt skal loade hver sin linje?

 

Siden både Form1 og Form2 skal laste samme informasjonen, hva er best?

1. Form1 loader fra Form2?

2. Form1 loader fra txt-filen?

Har det akkurat nå slik at Form1 henter informasjonen fra Form2.

 

Også med det samme jeg er i gang ( :laugh: ):

Hvis noen skriver et bestemt ord kommando-feltet for knappene, så vil jeg ha en bestemt rute opp.

Ta dette eksemplet hvis noen kan gi meg en kode:

Kommando-feltet: "None"

Da skal jeg f.eks. ha "Form4.Show".

 

Og til slutt, som jeg sa før, jeg er ganske så fersk i VB, så beklager. :w00t:

Lenke til kommentar

Hvis du ser i denne tråden, så står den hvordan hente ut forskjellige ting fra ver linje. spør hvis det noe :)

 

Edit: du skal ha opp en ny form hvis du skriver "None" i en tekstboks?

 

If text1.text = "None" then
form4.show
else
msgbox "Feil passord!", ,"Feil"
end if

 

eller

 

If text1.text = "None" then
form4.show
end if

Endret av jonas22282460
Lenke til kommentar
Hvis du ser i denne tråden, så står den hvordan hente ut forskjellige ting fra ver linje. spør hvis det noe :)

 

Edit: du skal ha opp en ny form hvis du skriver "None" i en tekstboks?

 

If text1.text = "None" then
form4.show
else
msgbox "Feil passord!", ,"Feil"
end if

 

eller

 

If text1.text = "None" then
form4.show
end if

Dim Buff$, Filnavn$
Dim DataArray() As String, Tell&

Filnavn = App.Path & "\Data.txt"

Open Filnavn For Input As #1
Do Until EOF(1)
Line Input #1, Buff

ReDim Preserve DataArray(Tell)
DataArray(Tell) = Buff
Tell = Tell + 1
Loop
Close #1

' Arrayen er loaded inn, last inn dataen:

For Tell = LBound(DataArray) To UBound(DataArray)
Buff = DataArray(Tell)
If Mid(Buff, 1, 1) = "<" Then

Select Case LCase(Mid(Buff, 2, InStr(1, Buff, ">") - 2))
Case "navn"
Text1.Text = DataArray(Tell + 1)
Case "addresse"
Text2.Text = DataArray(Tell + 2)
End Select

End If
Next

 

Da må vel hver linje ha en overskrift som f.eks. navn?

Hvordan lagrer jeg hver enkel linje under en viss tekst-linje i txt-filen?

 

Kan du gi meg en kode for dette:

 

Text1

<Det som står i Text1>

 

Text2

<Det som står i Text2>

 

Text3

<Det som står i Text3>

 

(Text1, 2 og 3 er "overskriften" over hver linje som skal lagres.)

Må ha en kode for å laste de inn også.

Uffa meg, blir bare verre og verre dette. :laugh:

Lenke til kommentar

Sånn her burde funke tror jeg :roll:

Private Sub Form_Load()
Dim Buff$, Filnavn$
Dim DataArray() As String, Tell&



Open App.Path & "data.txt" For Input As #1
Do Until EOF(1)
Line Input #1, Buff

ReDim Preserve DataArray(Tell)
DataArray(Tell) = Buff
Tell = Tell + 1
Loop
Close #1

' Arrayen er loaded inn, last inn dataen:

For Tell = LBound(DataArray) To UBound(DataArray)
Buff = DataArray(Tell)
If Mid(Buff, 1, 1) = "<" Then

Select Case LCase(Mid(Buff, 2, InStr(1, Buff, ">") - 2))
Case "text1"
Text1.Text = DataArray(Tell + 1)
Case "text2"
Text2.Text = DataArray(Tell + 1)
Case "text3"
Text3.Text = DataArray(Tell + 1)
End Select

End If
Next
End Sub

 

txt fila bør se sånn her ut omtrent:

 

<text1>

Jonas

 

<text2>

Karlsrud

 

<text3>

Oslo

 

Edit: skal finne en kode til å lagre

 

Kode for å lagre. Har ikke testa den ut så si ifra om den ikke funker

 

Private Sub Command1_Click()
Open "C:\data.txt" For Output As #1
Print #1, "<text1>"
Print #1, Text1.Text
Print #1,
Print #1, "<text2>"
Print #1, Text2.Text
Print #1,
Print #1, "<text3>"
Print #1, Text3.Text

Close #1
End Sub

Endret av jonas22282460
Lenke til kommentar
Se på path til fila i koden og sjekk om den stemmer.

 

Edit: legg til en '\' forann data.txt i koden så funker det nok

Yeah, funker som F nå. :p

 

Da var det en siste ting, kan jo alltids sette det som en bug, men er litt dumt når jeg har anledningen til å rette det nå. :p

Akkurat nå gir kun knappen "Avbryt" en kommando, nemlig "Unload Me". Jeg jeg trenger den til å resette, sånn at alle endringer som ikke er laget blir nullstilt.

For hvis jeg skriver noe i f.eks. Text1 (Form2), så blir knappene som leser fra Text1 om til det jeg har skrevet. De blir først stilt tilbake etter jeg har trykt på knappen.

 

Noen kode for å resette endringer som ikke er lagret? :)

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å
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...