Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Text einlesen und bearbeiten... (https://www.delphipraxis.net/87307-text-einlesen-und-bearbeiten.html)

Stern 26. Feb 2007 19:37


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

Andidreas 26. Feb 2007 19:43

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?!

DGL-luke 26. Feb 2007 19:48

Re: Text einlesen und bearbeiten...
 
Hallo,

die Delphi-Onlinehilfe kann dir da sicher gut weiterhelfen: Einfach mal den Cursor wo hinstellen, wo Delphi-Referenz durchsuchenTStringList steht, und F1 drücken!

Da kommen dann so Sachen wie die "Items" Eigenschaft...

Aber um gleich ein Beispiel zu bringen:

Delphi-Quellcode:
Text := MyStringList[LineIndex];
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:

Delphi-Quellcode:
MyStringList[LineIndex] := Text;
@andidreas: Öhm... näää... wenn sie es in die stringliste einliest, ist die datei nicht dauernd geöffnet. also kein problem.

Andidreas 26. Feb 2007 19:52

Re: Text einlesen und bearbeiten...
 
@dgl-luke... mit stringlists hab ich nie in verbindung mit txt files gearbeitet ;) von daher wusst ich das nicht ^^

Hallo_Thomas 26. Feb 2007 19:56

Re: Text einlesen und bearbeiten...
 
Damit steuerst Du die Zeilen an;

Delphi-Quellcode:
StringList.Strings[index]
[dp]StrUtils und damit die Strings bearbeiten.

Delphi-Quellcode:
StringList..Delete(index);
und damit löschst Du Zeilen

Stern 26. Feb 2007 20:15

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

Stern 26. Feb 2007 20:28

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:
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.
Entschuldigt bitte, wenn ich zu ungeduldig bin, aber mich hat's gepackt :P :P :P

Liebe Grüße
Steffi

Klaus01 26. Feb 2007 20:32

Re: Text einlesen und bearbeiten...
 
Delphi-Quellcode:
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.
Sollte in etwa so gehen. Du brauchst dazu noch ein TMemo.

Grüße
Klaus

Stern 26. Feb 2007 20:56

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

uwewo 26. Feb 2007 21:01

Re: Text einlesen und bearbeiten...
 
Schau mal unter

Delphi-Quellcode:

Memo1.Lines.LoadFromFile(Dateiname);
Uwe


Alle Zeitangaben in WEZ +1. Es ist jetzt 22:32 Uhr.
Seite 1 von 2  1 2      

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