webForumDet fria alternativet

Radera rader i textfil...

2 svar · 713 visningar · startad av demo

demo
#1

Hejsan!

Lade för lång tid sedan upp ett vykortscript i PERL, som jag hämtade på nätet.

Dock finns det en brist i scriptet. Det är att texten och de uppgifter som lagras om kortet (mottagare, e-post, kortnr m.m) inte raderas ut ur vykortsloggen då vykortet är hämtat.

Således måste man in och rensa i loggen manuellt.

Dock har "vykortsarkivet" blivit allt populärare, vilket medför att vykortsloggen ökar allt snabbare.

Det har medfört att det tar allt för lång tid att tanka ned vykortloggen, manuellt ta bort gamla kortuppgifter, för att sedan tanka tillbaka vykortsloggen.

Detta tar ungefär ca 10 minuter. Medans jag tankat ned loggen och raderat gamla uppgifter, så har ibland folk skickat vykort under tiden, varav nya uppgifter tillkommit i den logg som ligger kvar ute på nätet.

Således kan jag inte tanka över den modifierade loggen, utan att skriva över de nytillkomna kortuppgifterna.
Detta tycker jag är tokigt, (dels skulle det underlätta om man kunde göra detta via ett admin-sida) och skall därför skapa ett mycket enlekt administrationsscript som ordnar detta.

Har gjort ett enkelt formulär där man skriver in antalet rader i loggen som man vill ta bort. Det aktuella antalet skickas sedan till ett script som skall utföra raderingen.

Rent teoretiskt så bör man göra en while sats som tar bort en rad ur filen, tills satsen kommit upp i den siffra som man sänt till scriptet.

Undrar nu?
Om jag vill göra en whilesats som tar bort exempelvis de 150 första raderna i en textfil, hur bör den då se ut, vad gäller själva raderingen av raderna i filen?

Mvh,
Demo

[Redigerat av demo den 20 jan 2000]

TMedlem sedan jan. 20009 inlägg
#2

Det vore enklare att ge hjälp om man visste vilket script vi talar om. Det finns så många sett att lagra data. Allt beror på hur filen ser ut.

CssonMedlem sedan feb. 2000438 inlägg
#3

Något sånt här borde fungera, men ta en back-up på loggen först :)

Jag antar att du har läst in filen till @vykort och att file handlern är FIL. Du behöver nog ändra dom. Detta placeras alltså mellan open och close.

   
   for($a = 0; $a < @vykort; $a++) {
      if($a < 149) { }
      else {
         print FIL "@vykort[$a]";
      }
   }

/Csson

[Redigerat av Csson den 03 feb 2000]

133 ms totalt · 3 externa anrop · v20260731065814-full.fb544a5a
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
130 ms — hämta tråd, inlägg och bilagor (db)