Hej! Tack för att du valde att läsa mitt inlägg. Nu till min fråga. Minst krångel är nog att bara jobba mot en fil.Adressboksfunktion
BESKRIVNING AV APPLICATIONEN:
Programmet är en enkel Adressbok, med två sidor (som en giode som har flera sidor, med Nästa och Tillbaka-knappar). På första sidan ska man i en lista välja vilken person man vill ha informationen från. Sedan ska man klicka på "Nästa" där man får Se hela profilen för den personen.
Dvs, på första sidan i listan finns endast För- och efternamn förelat i två kolumner.
EGEN LÖSNING:
Man kan väl säga att jag själv har två idéer till problemet.
1) Man använder SAMMA textfil som både listan på sida ett använder, men också profilrutan på sida två. Problemet blir att filtrera bort så att bara förnamnet och efternamnet kommer med i listan på första sidan. Men hela raden i textfilen läggs i variabler färdig för profilrutan på sida två att använda.
2) Det finns TVÅ textfiler. En med bara för- och efternamn, samt en annan med för- och efternamn, gatuadress, postadress, HEM telefonnummer, MOBIL telefonnummer.
Vilken verkar smartast? Jag behöver alltså idéer och konkreta kodsnuttar, inte värdiga att använda men iallafall som är en bit på vägen.
PER ERICSSON
NNVB*
P.S. Är VB.Net något bra?
* Nästan Normalanvändare av Visual Basic.Sv: Adressboksfunktion
Du kan ju kanske besämma att varje post, med namn + adress + tel, får vara 1kb stor och fylla utrymme som blir över med NULL tecken. Då vet du att efter 1024 bytes i filen så kommer en ny person.
Exemplet nedan är lite annorlunda. Där har varje post en konstant längd (50 bytes) för en person med namn, adress och tel. Då börjar en ny person efter bara 150 bytes.
Annars är ju Access ganska lämpligt att ha till adressregister.
<code>
Option Explicit
Private Sub Command1_Click()
Dim s As String '* 50
Dim iFile As Integer
iFile = FreeFile
Open "c:\db.txt" For Binary As iFile
s = "Steve McQueen"
Put #iFile, 1, s
s = "Hollywood"
Put #iFile, 51, s
s = "213-555-5645"
Put #iFile, 101, s
s = "Chuck Norris"
Put #iFile, 151, s
s = "Texas"
Put #iFile, 201, s
s = "976-555-5645"
Put #iFile, 251, s
s = "Ted Kaczynski"
Put #iFile, 301, s
s = "Montana"
Put #iFile, 351, s
s = "123-456-7890"
Put #iFile, 401, s
Close iFile
End Sub
Private Sub Command2_Click()
Dim s As String * 50
Dim iFile As Integer
Dim lPos As Long
iFile = FreeFile
Open "c:\db.txt" For Binary As iFile
For lPos = 1 To LOF(iFile) Step 150
Get #iFile, lPos, s
Text1.Text = Text1.Text & Trim(s) & vbCrLf
Next lPos
Close iFile
End Sub
</code>