Pozdravljeni,
Ker se ta tematika vleče in vleče, pa ne prideva nikamor, sam vam napisal 3 funkcije, ki služijo zapisu podatkov, branju podatkov in njihovemu brisanju. Funkcije so pisane tako da jih preprosto berete in uporabljajo kodo, ki jo vi že poznate:
Koda: Izberi vse
Sub ZapisiPodatke(koda As Double, Ime As String, Priimek As String)
Open "c:\baza.txt" For Append As #1
Write #1, koda, Ime, Priimek
Close #1
End Sub
Function PreberiPodatke(koda As Double, ByRef Ime As String, ByRef Priimek As String) As Boolean
Dim tmpKoda As Double, tmpIme As String, tmpPriimek As String
PreberiPodatke = False
Ime = ""
Priimek = ""
Open "c:\baza.txt" For Input As #1
Do While (Not EOF(1)) And (Not PreberiPodatke)
Input #1, tmpKoda, tmpIme, tmpPriimek
If (tmpKoda = koda) Then
Ime = tmpIme
Priimek = tmpPriimek
PreberiPodatke = True
End If
Loop
Close #1
End Function
Sub BrisiPodatke(koda As Double)
Dim tmpKoda As Double, tmpIme As String, tmpPriimek As String
Open "c:\baza.txt" For Input As #1
Open "c:\tmp_baza.txt" For Output As #2
Do While Not EOF(1)
Input #1, tmpKoda, tmpIme, tmpPriimek
If (tmpKoda <> koda) Then
Write #2, tmpKoda, tmpIme, tmpPriimek
End If
Loop
Close #1
Close #2
FileCopy "c:\tmp_baza.txt", "c:\baza.txt"
Kill "c:\tmp_baza.txt"
End Sub
Sub Test()
ZapisiPodatke 1.9, "Matjaž", "Prtenjak"
ZapisiPodatke 3.14, "Mojca", "Simič Kosanovič"
ZapisiPodatke 9.26, "Andrej", "Koren"
ZapisiPodatke 12.8, "Miha", "Podbregar"
Dim Ime As String, Priimek As String
Dim nasel As Boolean
nasel = PreberiPodatke(1.9, Ime, Priimek)
Debug.Print nasel, Ime, Priimek
nasel = PreberiPodatke(12.8, Ime, Priimek)
Debug.Print nasel, Ime, Priimek
nasel = PreberiPodatke(7.3, Ime, Priimek)
Debug.Print nasel, Ime, Priimek
nasel = PreberiPodatke(3.14, Ime, Priimek)
Debug.Print nasel, Ime, Priimek
BrisiPodatke 1.9
BrisiPodatke 3.14
End Sub
Prva funkcija (ZapisiPodatke) je trivialna in je ne bom razlagal.
Druga (PreberiPodatke) najprej predvideva, da podatka na bo našla zato ime in priimek pobriše, nato bere datoteko in če najde ustrezno kodo, napolni ime in priimek ter konča zanko.
Tretja funkcija pa vse zapise, ki nimajo iskane kode prepisuje v drugo datoteko, na koncu pa novo datoteko prepiše v staro in jo nato izbriše.
Za preizkus pa je zapisana še funkcija (Test), kjer lahko stvari preizkusite in vidite, kako se uporabljajo.