Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Dateien bearbeiten (https://www.delphipraxis.net/70141-dateien-bearbeiten.html)

mfs 25. Mai 2006 17:16


Dateien bearbeiten
 
Hallo Zusammen,

ich bin in Delphi relativ neu und bin an folgender Stelle stehen geblieben,

ich möchte in einer Datei nach einem Wort suchen und dann ab diesem Wort bzw. ab der nächsten Zeile einen Text anhängen.
Die Suchfunktion habe geschafft, das andere aber nicht :(

Würde mir bitte jemand dazu einen Tipp geben..Danke für jede Hilfe


Gruss mfs

netscanner 25. Mai 2006 17:26

Re: Dateien bearbeiten
 
such mal nach der funktion "paste" in der Delphihilfe.
Dort kannst du angeben ab welcher position im String (bei dir im Text) er etwas einfügt...

_frank_ 25. Mai 2006 17:26

Re: Dateien bearbeiten
 
also für zeilenweise bearbeitung eignet sich imho TStringlist am besten

so in etwa (ungetested):

Delphi-Quellcode:
var sl:TStringlist;
    i :integer;
begin
  sl:=TStringlist.create;
  sl.loadfromfile(...);
  i:=0;
  while (i< sl.count) and (pos('text',sl.strings[i])=0) do inc(i);
  sl.insert(i+1,'zusatztext');
  memo1.lines.assign(sl);
  sl.savetofile(...);
  sl.free;
end;
HTH Frank

DP-Maintenance 25. Mai 2006 17:34

DP-Maintenance
 
Dieses Thema wurde von "Christian Seehase" von "Neuen Beitrag zur Code-Library hinzufügen" nach "Sonstige Fragen zu Delphi" verschoben.
Kein Beitrag für die Codelib

mfs 25. Mai 2006 17:54

Re: Dateien bearbeiten
 
Danke vielmals für den Quell-Code, es hat einwandfrei funktioniert :thumb:
Würdest Du aber bitte noch einen kleinen Tipp geben, zum gleich Anhängen nach dem gefundenen Wort.

Also im Bsp. soll "zusatztext" gleich nach "text" stehen und nicht in der neuen Zeile.

Weil i:=pos(...) hat jetzt doch die Nummer der Zeile, und bekomme ich nun die Nummer des letzten Zeichnes im "text"?
(Dies wäre also mein 2. Problem gewesen).

Gruss mfs

_frank_ 25. Mai 2006 18:02

Re: Dateien bearbeiten
 
das ergebnis von pos in ner var speichern, die länge deines Such-Textes hinzuaddieren und einfügen
da du der insert-funktion eine variable mitgeben kannst und sl.strings[i] eine konstante ist musst du ne separate string-var nehmen (s)

so in etwa:

s:=sl.strings[i];
p:=pos(text,s);
insert(text,s,p+length(text));
sl.strings[i]:=s;

HTH Frank


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:30 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