Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Alles in einer *.txt NACH einem bestimmten Satz löschen (https://www.delphipraxis.net/54657-alles-einer-%2A-txt-nach-einem-bestimmten-satz-loeschen.html)

rhodan 9. Okt 2005 05:30


Alles in einer *.txt NACH einem bestimmten Satz löschen
 
Hallöchen, ich muss nochmal nerven

Ich habe hier eine Textdatei (Rankinglist) auf meiner festplatte.
ich möchte das mein programm sie durchsucht und wenn ein bestimmer Satz gefunden wird alles darunter(inklusive dieses satzen) löscht und wieder abspeichert.

das sieht dann so aus:

Delphi-Quellcode:
 Freelancer Rankings
Account Nr.
Pos
Name
Rank
Money
Kills
Time Online
Missions
Systems
Bases
Holes
Last Login
23-9093da39/10-98dd163e

[Admin]-FireWall
75 
$199,430,100 

10:33:07 




17:51:15 - 03 Oct 05



das ist der erste teil der datei so wie ich ihn haben will, diese zeilen möchte ich später als einzelne strings einlesen und ein ein stringgrid einfügen. leider ist in der datei auch folgendes drin:

Delphi-Quellcode:
 - Last updated on Sat Oct 08 21:09:26 2005 - Generated by FLstat v1.4, in 94 secs -<HTML>
<HEAD>
  <TITLE>Freelancer Rankings</TITLE>
   
</HEAD>
<BODY>
<H1>Freelancer Rankings</H1>
<TABLE BORDER="0">
<TR>
  <TH ALIGN="CENTER">Account Nr.</TH>
  <TH ALIGN="CENTER">Pos</TH>
  <TH ALIGN="LEFT">Name</TH>
   
  <TH>Rank</TH>
  <TH>Money</TH>
  <TH>Kills</TH>
  <TH>Time Online</TH>
  <TH>Missions</TH>
   
  <TH>Systems</TH>
  <TH>Bases</TH>
  <TH>Holes</TH>
  <TH ALIGN="LEFT">Last Login</TH>
</TR>
 
 
<TR>
  <TD CLASS="Account Nr."> 23-9093da39/10-98dd163e</TD>
  <TD CLASS="pos">1</TD>
  <TD CLASS="name">[Admin]-FireWall</TD>
   
  <TD CLASS="rank">75</TD>
  <TD CLASS="money">$199,430,100</TD>
  <TD CLASS="kills">1</TD>
  <TD CLASS="time">10:33:07</TD>
  <TD CLASS="missions">0</TD>
  <TD CLASS="systems">2</TD>
  <TD CLASS="bases">2</TD>
  <TD CLASS="holes">0</TD>
  <TD CLASS="login">17:51:15 - 03 Oct 05</TD>
</TR>



Alles nach dem "Last updated on Sat Oct " etc etc soll gelöscht werden und wieder abgespeichert werden.

Kann mir jemand nen tipp geben wie ich das hinbekomme?

Ich sag mal Danke im Voraus


Rhodan

mimi 9. Okt 2005 07:26

Re: Alles in einer *.txt NACH einem bestimmten Satz löschen
 
also ich würde es evtl. so machen(bei der XML datei):
ich suche mir mit pos die position von ersten > und von da an lese es bis ich auf ein < stoße und dann landet alles in einer TStringList und "Fertig".

Was ich nur nicht verstehe ist:
Delphi-Quellcode:
Alles nach dem "Last updated on Sat Oct " etc etc soll gelöscht werden und wieder abgespeichert werden.
warum ? das heißt die möchtes zu erst die xml datei öffnen alles in einer TStringList schreiben und die dann abspeichern ohne XML code oder ?

Nikolas 9. Okt 2005 09:42

Re: Alles in einer *.txt NACH einem bestimmten Satz löschen
 
Nimm dir eine Textfile-Variable und kopiere die Zeilen per Readln(Original,str) und writeln(Kopie,str) rüber. Zwischen Lesen und schreiben kontrollierst du immer, ob pos('- Last updated',str)>0. Wenn das der Fall ist, wurde dieser String in der Zeile gefunden und du brichst die Schleife per Break ab.
Danach löschst du das Original und speicherst die neue Datei unter dem Namen ab.

Delphi-Quellcode:
Newfile: Textfile;

// Original öffnen

While not EOF(Original) do
begin
 readln(Original,str);
 if pos('- Last updated',str)>0 then break;
 writeln(Newfile,str);
end;

// Original schließen und löschen
// Neue Datei speichern.

rhodan 9. Okt 2005 18:16

Re: Alles in einer *.txt NACH einem bestimmten Satz löschen
 
danke danke euch beiden, habs hinbekommen :-D

supi


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:01 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz