![]() |
Mehrere Text-Dateien in ein TMemo?
Wie kann ich mit einen Klick gleich mehrere einzeilige Text-Dateien in ein TMemo laden?
|
Re: Mehrere Text-Dateien in ein TMemo?
Moin mlspider,
wenn Du die Dateien nach und nach in eine TStringList einliest, und mit AddStrings hinzufügst: Ja. [EDIT] TStringList muss es bei einzeiligen Dateien nicht sein, geht damit aber wohl am einfachsten. [/EDIT] |
Re: Mehrere Text-Dateien in ein TMemo?
Moin ist gut!
Könntest Du mir mal nen kleines Code-Beispiel geben? Danke |
Re: Mehrere Text-Dateien in ein TMemo?
Moin mlspider,
Delphi-Quellcode:
Bei einzeiligen Dateien genügt auch .Add(slWork.Text);, oder .Add(trim(slWork.Text));
var
slWork : TStringList; begin slWork := TStringList.Create; try slWork.LoadFromFile(PfadDerEinzulesendenDatei); Memo1.Lines.AddStrings(slWork); finally FreeAndNil(slWork); end; end; Du musst mal ausprobieren, was bei Dir am Besten passt. |
Re: Mehrere Text-Dateien in ein TMemo?
OK Christian, werd mal schauen ob es klappt.
|
Re: Mehrere Text-Dateien in ein TMemo?
Habe jetzt Dein Code eingefügt. Leider immer noch nicht. Der Compiler gibt zurück, daß Memo1 ein undefinierter Bezeichner ist.
|
Re: Mehrere Text-Dateien in ein TMemo?
Moin mlspider,
ich kann ja nun nicht wissen, wie Dein Memo heisst. BTW: Ich verschieb' den Thread mal. Hat nicht wirklich was mit Internet/IP/LAN zu tun ;-) |
Re: Mehrere Text-Dateien in ein TMemo?
Erst mal Danke für's Verschieben. Der Bezeichner war schon richtig: Memo1.
|
Re: Mehrere Text-Dateien in ein TMemo?
Moin mlspider,
dann hast Du es in eine normale Prozedur oder Funktion gelegt, und nicht in eine Methode des Formulares. In diesem Falle musst Du noch das Formular mit angeben, auf dem das Memo liegt. |
Re: Mehrere Text-Dateien in ein TMemo?
So, auch das habe ich getan. Form2.Memo1. Jetzt meckert der Compiler an der Stelle end; end; Erwartet wird aber end. Geht aber nicht, weil es nach diesen Aufruf eine neue Procedure gibt.
|
Re: Mehrere Text-Dateien in ein TMemo?
hmm.. vielleicht ein end zu viel?
|
Re: Mehrere Text-Dateien in ein TMemo?
Moin mlspider,
dann wirst Du wohl irgendwo ein End; vergessen haben, wo lässt sich ohne Source nicht sagen. Der Codeschnipsel von oben braucht nur noch einen Header. |
Re: Mehrere Text-Dateien in ein TMemo?
Habe schon versucht ein end; wegzunehmen. Klappt nicht.
Hier mal der gesamte Code:
Delphi-Quellcode:
Wo könnte nun Hase begraben liegen?
unit Unit2;
interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm2 = class(TForm) Memo1: TMemo; Button1: TButton; Button2: TButton; Edit1: TEdit; procedure Button1Click(Sender: TObject); procedure Button2Click(Sender: TObject); private { Private-Deklarationen } public { Public-Deklarationen } end; var Form2: TForm2; implementation uses IPWechsler; {$R *.dfm} var slWork : TStringList; begin slWork := TStringList.Create; try slWork.LoadFromFile('c:\Apache\xampp\htdocs\secure\ram\'); Form2.Memo1.Lines.AddStrings(slWork); finally FreeAndNil(slWork); end; end; procedure TForm2.Button1Click(Sender: TObject); begin Memo1.lines.loadfromfile('c:\Apache\xampp\htdocs\secure\ram\Charts1.asf') end; function changeIP(oldadr,newIp:String): String; var s: String; i : Integer; begin s := oldadr; delete(s,1,pos('//',s)+1); // HTTP:// wegschneiden, man geh davon aus dass es immer auf "//" endet delete(s,1,pos('/',s)-1); // Die IP wegschnippel ( also bis zum nächsten "/") result := 'http://' + newIp + s; // HTTP davor dann die IP und dann der rest ... end; procedure TForm2.Button2Click(Sender: TObject); var i:integer; begin for i := 0 to Memo1.Lines.Count-1 do Memo1.lines[i] := changeIP(Memo1.Lines[i],Form1.Edit1.text); memo1.Lines.SaveToFile('C:/test.asf'); end; end. |
Re: Mehrere Text-Dateien in ein TMemo?
Moin mlspider,
Du musst das ganze auch in eine Prozedur oder Funktion legen, und nicht einfach nur reinkopieren. Ich sag' doch, dass der Header fehlt. Ausserdem wird auch das hier nicht funktionieren:
Delphi-Quellcode:
Da steht keine Datei die geladen werden soll.
slWork.LoadFromFile('c:\Apache\xampp\htdocs\secure\ram\');
Du musst das für jede Datei einzel aufrufen. |
Re: Mehrere Text-Dateien in ein TMemo?
Sorry, aber könnte ich die Sache mit den Ereignis OnCreate oder OnClick aufrufen, oder wie hast Du das mit dem Header gemeint?
|
Re: Mehrere Text-Dateien in ein TMemo?
Moin mlspider,
richtig. Irgendwo muss es ja drinstehen, sonst kannst Du es nicht aufrufen. Ob das nun eine Methode (Prozedur oder Funktion einer Klasse) oder eine einfache Prozedur oder Funktion ist spielt keine Rolle. |
Re: Mehrere Text-Dateien in ein TMemo?
OK, ich habe jetzt ein Button hinzugefügt und über das OnClick Ereignis Deinen Code eingesetzt. Funktioniert perfekt. Nur leider will der Rest nicht mehr, also der IP-Wechsel funktionieren.
Muß jetzt der vorhandene Code modifiziert werden? PS: Ich hoffe, ich falle Dir nicht all zu sehr auf die Nerven! |
Re: Mehrere Text-Dateien in ein TMemo?
Moin mlspider,
Zitat:
Was jetzt an dem Rest nicht mehr funktionieren soll kann ich so allerdings nicht nachvollziehen. |
Re: Mehrere Text-Dateien in ein TMemo?
Jetzt wird alles korrekt ausgeführt, allerdings wird jetzt in jeder in dem Memo geöffneten Datien alle Zeilen geschrieben:
"http://11111111111111/secure/mp3/Titel1.wma" "http://11111111111111/secure/MP3/Titel2.wma" "http://11111111111111/secure/MP3/Titel3.wma" "http://11111111111111/secure/MP3/Titel4.wma" realisiert wurde das so:
Delphi-Quellcode:
procedure TForm2.Button2Click(Sender: TObject);
var i:integer; begin for i := 0 to Memo1.Lines.Count-1 do Memo1.lines[i] := changeIP(Memo1.Lines[i],Edit1.text); memo1.Lines.SaveToFile('C:/test1.asf'); Memo1.lines[i] := changeIP(Memo1.Lines[i],Edit1.text); memo1.Lines.SaveToFile('C:/test2.asf'); Memo1.lines[i] := changeIP(Memo1.Lines[i],Edit1.text); memo1.Lines.SaveToFile('C:/test3.asf'); Memo1.lines[i] := changeIP(Memo1.Lines[i],Edit1.text); memo1.Lines.SaveToFile('C:/test4.asf'); end; |
Re: Mehrere Text-Dateien in ein TMemo?
Moin mlspider,
ich schlage vor, dass Du noch einmal darüber nachdenkst, wie das Programm ablaufen muss, also wann muss was passieren. Das müsste sich meiner Ansicht nach aus dem "Was will ich haben" ./. "Was bekomme ich" ergeben. |
Re: Mehrere Text-Dateien in ein TMemo?
Grundüberlegung ist die: Es werden mehrere einzeilige asf-Dateien in eine Memo-Komponente geladen. Der nächste Schritt wäre die nach "http://" erscheinende IP auszuschneiden und den Rest zu behalten.
Anschließend sollen alle im Memo geladenen Dateien mit der neuen Ip ersetzt werden. Und zum Schluß sollen die asf-Dateien wieder mit der neuen IP überschrieben werden. Das heißt: jeweils nur eine Zeile pro Datei, wie Sie geladen wurde. :wall: |
Re: Mehrere Text-Dateien in ein TMemo?
Moin mlspider,
warum liest Du nicht eine Zeile ein (entspricht ja, wenn ich das richtig verstanden habe eine Datei), bearbeitest sie, und schreibst sie dann, einzeln, wieder zurück? Oder hab' ich da jetzt irgendetwas missverstanden? |
Re: Mehrere Text-Dateien in ein TMemo?
Weil es sich um mehrere hundert Dateien handelt. Wie kann ich denn nun nach dem erfolgreichen IP-Wechsel (Dank Deines Code), auch jede einzelne Zeile im Memo auch in einer Datei speichern, ohne das alle Zeilen in jeder Datei steht?
|
Re: Mehrere Text-Dateien in ein TMemo?
Moin mlspider,
ich hoffe Dich jetzt richtig verstanden zu haben: Statt Memo1.Lines.SaveToFile aufzurufen, machst Du es umgekehrt wie beim einlesen. Du übergibst Zeile für Zeile an eine TStringList und schreibst die dann. |
Re: Mehrere Text-Dateien in ein TMemo?
Schön, hört sich einfach an. Wäre aber wiederum lieb, Du würdest mir ein kleines Code-Beispiel geben.
Danke!!! |
Re: Mehrere Text-Dateien in ein TMemo?
Moin mlspider,
die Routine vom Einlesen umzudrehen, solltest Du aber inzwischen auch so hinbekommen. |
Re: Mehrere Text-Dateien in ein TMemo?
Irgendwie kann ich nicht mehr folgen. Gib mir bitte mal ein Code-Beispiel für die Umkehr
|
Re: Mehrere Text-Dateien in ein TMemo?
Moin mlspider,
Delphi-Quellcode:
damit müsstest Du eigentlich klarkommen.
slWork.Text := Memo1.Lines[i];
slWork.SaveToFile(UndHierImmerDerEntsprechendeDateiPfad) Das "schmückende Beiwerk" steht ja schon weiter oben. |
Re: Mehrere Text-Dateien in ein TMemo?
Danke erstmal für Deine Mühen!!!!! Werde es jetzt ausprobieren. Allerdings der Blick auf meine Uhr straft mich schon wieder. Ich muß ja wenigstens ein paar Stunden schlafen, an sonsten wird mein Chef morgen irre, wenn meine Augen zufallen.
Wenn Du willst, gib mir mal Deine E-Mail. Meine lautet: mlspider@web.de Gruß Mario |
Re: Mehrere Text-Dateien in ein TMemo?
Moin mlspider,
guckst Du hier (unten in der Leiste) ;-)
Code:
||
|| || \ / \/ |
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:58 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 by Thomas Breitkreuz