Brisanje iz TXT datoteke
Brisanje iz TXT datoteke
Pozdravljen ...
Imam namreč težavo pri brisanju določene vrstice v TXT datoteki.
Podatke vnašam preko kode iz prog. VB6 in sicer s spremenljivko string * 20 itd.
Te podatke člahko iščem, seštevam, nikakor pa mi ne uspe izpeljati formulo, da bi določen podatek oziroma vrstico izbrisal in da ta ne bi bila več v tej bazi.
Upam, da sem bil dovolj jasen, če ne bom pa kasneje še kaj dodal.
Že v naprej se lepo zahvaljujem za pomoč.
Imam namreč težavo pri brisanju določene vrstice v TXT datoteki.
Podatke vnašam preko kode iz prog. VB6 in sicer s spremenljivko string * 20 itd.
Te podatke člahko iščem, seštevam, nikakor pa mi ne uspe izpeljati formulo, da bi določen podatek oziroma vrstico izbrisal in da ta ne bi bila več v tej bazi.
Upam, da sem bil dovolj jasen, če ne bom pa kasneje še kaj dodal.
Že v naprej se lepo zahvaljujem za pomoč.
Re: Brisanje iz TXT datoteke
Pozdravljeni,
TXT datoteka je najbolj osnovna oblika datoteke in seveda nima "implementiranega" brisanja! Če želite nekaj iz TXT datoteke pobrisati morate vse tisto kar je za tem prepisati čez.
Algoritem je nekako sledeč:
Z drugimi besedami povedano: Vse podatke, ki v datoteki ostanejo, prepišete v novo datoteko (tistih, ki jih želite pobrisati pač ne prepišete) in potem to novo datoteko preimenujete v originalno.
Še povsem praktičen primer: predstavljajte si popisan list papirja.
Kako pa si predstavljate formulo, ki bi to naredila???ROBERT napisal/-a:...nikakor pa mi ne uspe izpeljati formulo, da bi določen podatek oziroma vrstico izbrisal...
TXT datoteka je najbolj osnovna oblika datoteke in seveda nima "implementiranega" brisanja! Če želite nekaj iz TXT datoteke pobrisati morate vse tisto kar je za tem prepisati čez.
Algoritem je nekako sledeč:
Koda: Izberi vse
Odpri TXT datoteko (VHOD)
Odpri začasno novo TXT datoteko (IZHOD)
dokler VHOD ni prazen
če (vhodna vrstica OK) POTEM
zapiši vrstico na IZHOD
beri novo vrstico iz VHOD-a
ponavljaj
Odstrani datoteko VHOD
Datoteko IZHOD preimenuj v ime datoteke VHOD
Še povsem praktičen primer: predstavljajte si popisan list papirja.
lp,
Matjaž Prtenjak
Administrator
Matjaž Prtenjak
Administrator
Pozdravljeni,
Težko vam napišem kaj bolj konkretnega, saj je algoritem zapisan tako da je praktično enolično definiran tudi v VBA-ju. No Lahko vam zapišem VBA kodo, ki pa jo pišem kar direktno v brkljalnik in ni preizkušena, zato so možne napake :
To je to. Napisati pa morate še funkcijo AliTaVrsticaUstreza, ki pove ali je potrebno neko vrstico prepisati ali ne. To pa je funkcija, ki jo morate napisati sami, saj samo samo vi poznate vsebino in lahko poveste katera vrstica ustreza in katera ne.
Težko vam napišem kaj bolj konkretnega, saj je algoritem zapisan tako da je praktično enolično definiran tudi v VBA-ju. No Lahko vam zapišem VBA kodo, ki pa jo pišem kar direktno v brkljalnik in ni preizkušena, zato so možne napake :
Koda: Izberi vse
' Odprem
Open "vhodna.txt" for input as #1
Open "izhodna.txt" for output as #2
' prepisujem
While Not EOF(1)
Line Input #1, VhodnaVrstica
if (AliTaVrsticaUstreza(VhodnaVrstica) then
print #2, VhodnaVrstica
End If
Wend
'z zaprem
Close #2
Close #1
' preimenujem
Name "izhodna.txt" as "vhodna.txt"
lp,
Matjaž Prtenjak
Administrator
Matjaž Prtenjak
Administrator
No pa poglejva to umetnijo, formulo, za pregled txt v List-box-u je nekako takole;
No koda je taka, sedaj pa bi probal prenesti zapise, tako, da bi vila pač izbrana vrstica izbrisana, oziroma v novi datoteki pač ne bi bila zapisana.
Hvala še enkrat.
Koda: Izberi vse
List1.Clear
Open "c:\vhod.txt" For Input As #1
While Not EOF (1)
Input #1, ime,priimek,cena
List1.AddItem ime & priimek & cena
Wend
close #1
Hvala še enkrat.
Pozdravljeni,
Pogoj je pač preprosto tretja vrstica. Štejete vrstice in tretjo preskočite:
PS: V kodi se lahko nahaja kakšna sintaktična napaka, saj sem jo pisal direktno v forum in nisem preizkušal!
Pogoj je pač preprosto tretja vrstica. Štejete vrstice in tretjo preskočite:
Koda: Izberi vse
' Odprem
Open "vhodna.txt" for input as #1
Open "izhodna.txt" for output as #2
dim vrstica as integer
' prepisujem
While Not EOF(1)
Line Input #1, VhodnaVrstica
vrstica = vrstica + 1;
if (vrstica <> 3) then
print #2, VhodnaVrstica
End If
Wend
' zaprem
Close #2
Close #1
' preimenujem
Name "izhodna.txt" as "vhodna.txt"
lp,
Matjaž Prtenjak
Administrator
Matjaž Prtenjak
Administrator
Pozdravljeni,
Če je to kakšna druga vrstica pa je potrebno samo v kodi zamenjati vrstico
z neko drugo. Za 8 vrstico bi bilo:
Če je to kakšna druga vrstica pa je potrebno samo v kodi zamenjati vrstico
Koda: Izberi vse
if (vrstica <> 3) then
Koda: Izberi vse
if (vrstica <> 8) then
lp,
Matjaž Prtenjak
Administrator
Matjaž Prtenjak
Administrator