Text einlesen und bearbeiten...
Hallo liebes Forum,
vorweg, ich bin ein absoluter Neuling auf dem Gebiet Delphi komme mehr aus der "Netz-Ecke"...;-) Ich will euch mal mein Problem schildern und hoffe, jemand von euch kann mir bei meinem, vielleicht auch etwas banalen Problem helfen. Ich würde nämlich gerne eine .txt Datei ab einer bestimmten Zeile einlesen und dann den Text verändern. Nun würde ich die Datei gerne abspiechern und somit die alte Datei überschreiben. Das ganze als Formular wär schon ganz schön. Naja, nach 2 Stunden suchen habe ich es gerade mal geschafft, die Datei komplett in eine StringList einzulesen. Mehr aber nicht... :cry: Ich würd mich wahnsinnig freuen, wenn sich hier einer der kleinen verzweifelt suchenden Steffi annehmen würde :oops: Liebe Grüße Steff |
Re: Text einlesen und bearbeiten...
öhm also meines wissens nach, kannst du die datei die du geöffnet hast nicht überschreiben...
du müsstest dir temporär ein 2. txt file erstellen in das die daten schreiben, speichern, und danach wieder in die original datei umbennen... also zumidest hab ich das immer so gemacht... leider hab ich mein geschäfts notebook grad nicht da, sonst hätte ich dir gleich ein bsp. schicken könenn... wenns langt hol ich das morgen nach?! |
Re: Text einlesen und bearbeiten...
Hallo,
die Delphi-Onlinehilfe kann dir da sicher gut weiterhelfen: Einfach mal den Cursor wo hinstellen, wo TStringList steht, und F1 drücken! Da kommen dann so Sachen wie die "Items" Eigenschaft... Aber um gleich ein Beispiel zu bringen:
Delphi-Quellcode:
Damit bekommst du (von 0 an gezählt) die LineIndex'ste Zeile des INhalts der Stringliste. und das kannst du dann manipulieren. Zurück gehts genau andersrum:
Text := MyStringList[LineIndex];
Delphi-Quellcode:
@andidreas: Öhm... näää... wenn sie es in die stringliste einliest, ist die datei nicht dauernd geöffnet. also kein problem.
MyStringList[LineIndex] := Text;
|
Re: Text einlesen und bearbeiten...
@dgl-luke... mit stringlists hab ich nie in verbindung mit txt files gearbeitet ;) von daher wusst ich das nicht ^^
|
Re: Text einlesen und bearbeiten...
Damit steuerst Du die Zeilen an;
Delphi-Quellcode:
[dp]StrUtils und damit die Strings bearbeiten.
StringList.Strings[index]
Delphi-Quellcode:
und damit löschst Du Zeilen
StringList..Delete(index);
|
Re: Text einlesen und bearbeiten...
Meine Güte,
hier geht's aber rund... :shock: :shock: :shock: Ich werde mich mal gleich ransetzen und noch ein bisschen was versuchen. @Andidreas: Das wär superlieb, wenn du mir da ein Beispiel zukommen lassen könntest. Vielleicht denkste morgen ja dran ;-) Email per pm... @all: Also das war mehr ein Versuch mit der StringList, dass is mir halt bekannt vorgekommen :oops: ... Wäre es einfach, das ganze in ein editierbares Textfeld einzulesen? Hätte mir da jemand nen kurzen Ansatz, denn ich hab wirklich noch gar keinen Überblick mit den Formularen, etc... Ganz liebe Grüße Steffi |
Re: Text einlesen und bearbeiten...
Ok, ich hab mal hier schon was probiert. Damit bekomme ich die erste Zeile angezeigt. Wie kann ich diese und die folgenden 37 aber in ein Textfeld laden und diese verändern?
Mhm... das hab ich bis jetzt mal hinbekommen:
Code:
Entschuldigt bitte, wenn ich zu ungeduldig bin, aber mich hat's gepackt :P :P :P
type
TForm1 = class(TForm) Button1: TButton; procedure Button1Click(Sender: TObject); private { Private-Deklarationen } public { Public-Deklarationen } end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.Button1Click(Sender: TObject); var sl: TStringList; zeilennr: integer; begin sl:=TStringList.Create; //Objekt erzeugen try sl.LoadFromFile('c:\...\text.txt'); //Datei in Stringliste laden ShowMessage(sl.Strings[21]); //Meldung ausgeben finally sl.free; //Objekt wieder freigeben end; end; end. Liebe Grüße Steffi |
Re: Text einlesen und bearbeiten...
Delphi-Quellcode:
Sollte in etwa so gehen. Du brauchst dazu noch ein TMemo.
type
TForm1 = class(TForm) Button1: TButton; Memo1 : TMemo; procedure Button1Click(Sender: TObject); private { Private-Deklarationen } public { Public-Deklarationen } end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.Button1Click(Sender: TObject); var sl: TStringList; zeilennr: integer; i:Byte; begin sl:=TStringList.Create; //Objekt erzeugen try sl.LoadFromFile('c:\...\text.txt'); //Datei in Stringliste laden //ShowMessage(sl.Strings[21]); //Meldung ausgeben for i:=21 to 58 do Memo1.add(sl[i]); finally sl.free; //Objekt wieder freigeben end; end; end. Grüße Klaus |
Re: Text einlesen und bearbeiten...
Hallo Klaus,
vielen Dank für deine Antwort. Ich habe dein Beispiel mal versucht, bekomme aber die Fehlermeldung "TMemo enthält kein Element 'add'". Muss ich eventuell noch etwas importieren um TMemo nutzen zu können? Ich kann noch nicht weiter kompilieren... oder muss ich vielleicht irgendwelche Einstellungen am Formular selbst vornehmen? Ganz liebe Grüße Steffi |
Re: Text einlesen und bearbeiten...
Schau mal unter
Delphi-Quellcode:
UweMemo1.Lines.LoadFromFile(Dateiname); |
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:32 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