Avatar billede safl Nybegynder
21. november 2001 - 09:47 Der er 1 kommentar og
4 løsninger

Skrivning til start af fil

Hello!
Hvordan skriver man til starten af en fil? Sådan er min kode nu:

\'skriver transauktionen
Open App.Path & \"\\transauktioner.txt\" For Append As #1
    Print #1, \"Indbetalt: \" & SaldoInd & \" d.\" & Now()
Close #1

Fejlen er at den skriver i slutningen af filen istedet for at tilføje til starten af filen. Håber i kan hjælpe.
Avatar billede proaccess Nybegynder
21. november 2001 - 09:51 #1
Den var straks værrere...

Du må åbne en NY fil, skrive dine nye data ind, og derefter åbne den gamle fil, læse alt fra denne og skrive det ind i den nye fil , for derefter at slette den gamle fil, og omdøbe den nye fil...

Er du sikker på at du vil dette???
Avatar billede safl Nybegynder
21. november 2001 - 09:57 #2
lol :)

Jeg hader Visual Basic det er nok det klammeste sprog! Der må være en anden måde :)

Men hvis der ikke er så må jeg jo bruge din metode.
Avatar billede joern Nybegynder
21. november 2001 - 11:00 #3
Hej Safl.

Proaccess har sådan set ret, selv om det med at omdøbe er lidt uelegant.  Det som foregår er jo faktisk det samme som alle andre programmer gør, tekstbehandlere, databaser o.s.v.  Men i VB skal du bare skrive det selv.

Hvis din fil ikke er for stor, så kan du nøjes med én fil på den måde at du opretter er dynamisk array, hvor strengene fra org.filen indlæses.  Når du derpå skriver med output overskrives hele indholdet og du skal så blot skrive det først, som du ønsker først, altså det nye du nævner.

Jeg vil sige at en fil over 1 MB måske er lidt stor til et array, men det er jo en smagssag. Er der ram nok er det ikke noget teknisk problem.

M.v.h.  Jørn
Avatar billede wilco Nybegynder
21. november 2001 - 13:17 #4
hej safl

Endeligt er der den \"beskidte\" OS måde :)

via et kald til operativ systemet giver du følgende dos komando :

copy \"fil1\" + \"fil2\" /B

i dettte tilfælde :

rename eksisterende logfil logfil.txt > logfil.old
skriv entry i nyoprettet logfil.txt
copy logfil.txt + logfil.old /B

så vil logfil.txt indeholde din nye entry først og derefter logfil.old :)

På den måde er du ikke afhængig af array\'s og langsomme fil læsning/skrivning, når/hvis din logfil bliver stor.

/Wilco
Avatar billede johs_j Novice
21. november 2001 - 22:25 #5
Først må du indlæse hele filen i en String variabel f.eks. Temp

Open App.Path & \"\\transauktioner.txt\" For Output As #1
    Print #1, \"Indbetalt: \" & SaldoInd & \" d.\" & Now()
print #1, Temp
Close #1
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester