AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Teile einer Textdatei löschen

Ein Thema von mikael · begonnen am 5. Mai 2005 · letzter Beitrag vom 5. Mai 2005
Antwort Antwort
mikael

Registriert seit: 5. Mai 2005
2 Beiträge
 
#1

Teile einer Textdatei löschen

  Alt 5. Mai 2005, 19:57
Hallo Leute !

Mein erster Tag hier und gleich die erste Frage an die Profis:

Ich habe mehrere Textdateien mit je über 100 Zeilen.
Am Anfang und am Ende von jeder Textdatei ist Chaos.
Irgendwo in der Mitte ist ein Bereich, was nützlich ist.
Dieses nützliche Teil beginnt mit "Apfel" und endet mit "Birne".
Die Positionen von "Apfel" und "Birne" sind in jeder Datei unterschiedlich.

Wie lösche ich das Chaos, so dass die Dateien immer mit "Apfel" beginnen und mit "Birne" enden ?

Werde aus der Delphi-Hilfe nicht schlau, könnt Ihr mir helfen ?

Bitte denkt dran, bin kein Profi.

VIELEN DANK IM VORAUS

Mikael
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#2

Re: Teile einer Textdatei löschen

  Alt 5. Mai 2005, 20:01
wenn die datei nicht all zu groß ist kommst du am besten du liest sie komplett in einen String ein. dann suchst du mit Delphi-Referenz durchsuchenPos nach Apfel. Anschließend suchst du mit Delphi-Referenz durchsuchenPos nach birne. und dann den teil dazwischen als datei speichern.

Ein Beispiel:
Delphi-Quellcode:
procedure CutFilePart(AFilename: String);
var LStream: TStream;
    LStr: String;
    LPos1, LPos2: Integer;
begin
  if FileExists(AFilename) then
  begin
    LStream := TFileStream.Create(AFilename, fmOpenRead);
    setlength(LStr, LStream.Size);
    LStream.Read(LStr[1], LStream.Size);
    LStream.Free;
    LPos1 := pos('apfel', LStr);
    if LPos1 > 0 then
    begin
      LPos1 := LPos1 + length(apfel);
      LPos2 := pos('biren', LStr);
      if (LPos2 > 0) and (LPos2 > LPos1) then
      begin
        LStream := TFileStream.Create(AFilename, fmCreate);
        LStream.Write(LStr[LPos1], LPos2 - LPos1);
        LStream.Free;
      end;
    end;
  end;
end;
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
mikael

Registriert seit: 5. Mai 2005
2 Beiträge
 
#3

Re: Teile einer Textdatei löschen

  Alt 5. Mai 2005, 20:13
SUPER ! bin begeistert !
HERZLICHEN DANK ))
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:17 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz