![]() |
Eine Textdatei in eine Varriable einlesen
Hi zusammen,
Ich hab folgenden Code gefunden, er sorgt dafür, das ich Dateien per Drad n Drop laden kann.
Delphi-Quellcode:
Nun möchte ich aber den Text an der Cursor stelle einfügen,
procedure TForm1.GetDroppedFileNames(var msg : TWMDropFiles);
var sFileName : string; dwFileCount : cardinal; i : cardinal; dwReqdLength : cardinal; begin dwFileCount := DragQueryFile(msg.Drop,$FFFFFFFF,nil,0); for i := 0 to dwFileCount - 1 do begin dwReqdLength := DragQueryFile(msg.Drop,i,nil,1); sFileName := StringOfChar(#00,dwReqdLength+1); DragQueryFile(msg.Drop,i,PChar(sFileName),dwReqdLength+1); SynEdit1.Lines.LoadFromFile(sFileName); end; end; (var temp : string)
Delphi-Quellcode:
Meine frage, wie bekomme ich die Datei "sFileName" in temp geladen ?
also mit SynEdit1.Seltext := temp
Ich hab schon probiert temp als Memo zu deklarieren, doch wenn ich dann eine Datei draufziehe, dannbricht das Programm ab.
Delphi-Quellcode:
procedure TForm1.GetDroppedFileNames(var msg : TWMDropFiles);
var sFileName : string; dwFileCount : cardinal; i : cardinal; dwReqdLength : cardinal; Memo1 : TMemo; begin dwFileCount := DragQueryFile(msg.Drop,$FFFFFFFF,nil,0); for i := 0 to dwFileCount - 1 do begin dwReqdLength := DragQueryFile(msg.Drop,i,nil,1); sFileName := StringOfChar(#00,dwReqdLength+1); DragQueryFile(msg.Drop,i,PChar(sFileName),dwReqdLength+1); Memo1.Lines.LoadFromFile(sFileName); // <-- HIER BRICHT DAS PROGRAMM AB SynEdit1.SelText := Memo1.Lines.Text; end; end; Weis von euch einer Rat ? |
Was fuchtelst du da mit dem Memo rum?
Entweder nimm eine StringListe oder lies die Datei mit ReadLn in eine String Variable ein:
Delphi-Quellcode:
Jetzt mal so aus dem Kopf hier reingehackt.
var
f : TextFile; s, s1 : String; begin ...; AssignFile(f, Filename); Reset(f); while not EOF(f) do begin ReadLn(f, s1); s := s + s1; end; Closefile(f); SynEdit.Seltext := s; |
thx :hello:
|
sag blos, das ist auf Anhieb gelaufen und hat auch gleich funktioniert? :shock:
|
nicht gans so wie es sollte, musste noch 6 Zeichen hinzufügen :D
Delphi-Quellcode:
nochmal thx
.
. . ReadLn(f, s1); s := s + #10 + s1; . . . |
Gut der Zeilenumbruch. dann machen wir es bare gleich ganz richtig:
Delphi-Quellcode:
s := s +#13#10 + s1;
|
Was genau ist eigentlich der unterschied zwischen #10 und #13 oder eben #10#13
#13 ist doch der Asci-Code für ddie Enter Taste oder ? Aber was ist #10 ? |
Ein Zeilenumbruch in Windows ist definiert als die ASCII-Zeichen 13 und 10. Die meisten Programme können aber auch mit dem UNIX- oder MAC OS-Format umgehen, da ist es nur das Zeichen #10 bzw. #13.
|
Weiss einer wie ich einen automatischen
Zeilenumbruch hinbekomme, also wie im Notepad. Wie findet man heraus, wann die Zeile länger wird, als das Programm breit ist :shock: |
#13 ist CR -> CarriageReturn (Wagenrücklauf) und
#10 ist LF -> LineFeed (Zeilenvorschub). @MrKnogge: neue Frage , neuer Thread. Geschlossen. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:26 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-2025 by Thomas Breitkreuz