Hallo zusammen,
ich habe ein kleines Problem und zwar möchte ich wenn ich auf einen Button drücken, dass sich dort ein OpenDialog öfnnet und ich ein Textdokument in ein Memo einlesen kann. Es funktioniert eigentlich... Bis auf, dass ich nur Dokumente mit der Endung .txt ein
lesen kann. Außerdem soll er das Ganze zeilenweise einlesen und nicht buchstabenweise. Könnt ihr mir helfen?
Hier mein Quellcode
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32:
| procedure TData.LoadFromFile; var iFileHandle : Integer; iFileLength : Integer; iBytesRead : Integer; Buffer : PChar; i : Integer; sTimeStamp : string; begin if FU_ASTM_Sender.FrmASTM_Sender.OpenDialog1.Execute then begin try iFileHandle := SysUtils.FileOpen(FU_ASTM_Sender.FrmASTM_Sender.OpenDialog1.FileName, fmOpenRead); iFileLength := SysUtils.FileSeek(iFileHandle,0,2); FileSeek(iFileHandle,0,0); Buffer := PChar(System.AllocMem(iFileLength + 1)); iBytesRead := SysUtils.FileRead(iFileHandle, Buffer^, iFileLength); sTimeStamp := FormatDateTime('YYYYMMDDHHNNSS',now); FU_ASTM_Sender.FrmASTM_Sender.ASTM.lines.Clear; FileClose(iFileHandle); for i := 0 to iBytesRead-1 do begin if i = 0 then FU_ASTM_Sender.FrmASTM_Sender.ASTM.lines.Add(StringReplace(Buffer[i],'#TS#',sTimeStamp,[rfIgnoreCase])) else FU_ASTM_Sender.FrmASTM_Sender.ASTM.lines.Add(Buffer[i]); end; finally FreeMem(Buffer); end; end; end; |
Moderiert von
Narses: Delphi-Tags hinzugefügtModeriert von
Narses: Topic aus Delphi Language (Object-Pascal) / CLX verschoben am Mi 19.05.2010 um 23:31