|
#1
|
|||
|
|||
Чтение из txt
Доброго времени суток!
Столкнулся с такой вот проблемой! Есть код, который выводит список текстовых файлов определённой папки в ListBox: Код:
Procedure ScanDir(StartDir: String; Mask:string; List:TStrings); Var SearchRec : TSearchRec; Begin IF Mask ='' then Mask:= '*.txt*'; IF StartDir[Length(StartDir)] <> '\' then StartDir := StartDir + '\'; IF FindFirst(StartDir+Mask, faAnyFile, SearchRec) = 0 then Begin Repeat Application.ProcessMessages; IF (SearchRec.Attr and faDirectory) <> faDirectory then List.Add(SearchRec.Name) else IF (SearchRec.Name <> '..') and (SearchRec.Name <> '.') then Begin List.Add(StartDir + SearchRec.Name + '\'); ScanDir(StartDir + SearchRec.Name + '\',Mask,List); End; Until FindNext(SearchRec) <> 0; FindClose(SearchRec); End; end; procedure TForm1.Button1Click(Sender: TObject); begin ListBox1.Items.Clear; ScanDir(ExtractFilePath(ParamStr(0)),'',ListBox1.Items); Label1.Caption := IntToStr(ListBox1.Items.Count); end; Что необходимо сделать, чтобы вывести содержимое текстового файла (например, в RichEdit), который выделен в ListBox? Заранее благодарен! |
#2
|
|||
|
|||
Код:
var fL:TextFile; TMP:String; begin AssignFile(fL,ListBox1.Items[ListBox1.ItemIndex]); Reset(fL); while not eof(fL) do begin Readln(fL,TMP); RichEdit1.Lines.Add(TMP); end; end |
#3
|
||||
|
||||
Не знаю насчет RichEdit, но в Memo есть замечательный метод Memo1.LoadFromFile(Filename); Думаю, в RE тоже должен быть.
jmp $ ; Happy End! The Cake Is A Lie. |
#4
|
|||
|
|||
Цитата:
|
#5
|
|||
|
|||
Вот еще появился вопрос такого характера!
Теперь я пытаюсь сохранить файл из RichEdit в txt, используя вот такой вот код: Код:
procedure TForm1.Button2Click(Sender: TObject); var f: file; s: string; begin s := RichEdit1.Text; RichEdit1.PlainText:=True; AssignFile(f, 'text.txt'); Rewrite(f); BlockWrite(f, PChar(s)^, Length(s)); CloseFile(f); end; Но в созданном txt файле показуется куча непонятных символов! Как этого можно избежать? Может есть какое-то форматирование? |
#6
|
||||
|
||||
Код:
// не так BlockWrite(f, PChar(s)^, Length(s)); // так Write(f, s); |
#7
|
|||
|
|||
Цитата:
|
#8
|
||||
|
||||
Файл должен быть формата text
Код:
var f:text; jmp $ ; Happy End! The Cake Is A Lie. |
#9
|
|||
|
|||
Цитата:
Последний раз редактировалось jekahm, 16.06.2011 в 02:27. |
#10
|
|||
|
|||
Цитата:
|
#11
|
||||
|
||||
ReadLn предполагает, что файл разбит на строки и читает построчно. Смотри какой у тебя текстовый файл, в данном случае, исходя из твоих слов, у тебя файл состоит из одной строки.
Последний раз редактировалось angvelem, 16.06.2011 в 02:55. |
#12
|
|||
|
|||
Цитата:
А вы пробовали, у вас работает? Просто может только у меня проблема! |
#13
|
|||
|
|||
Кстати, если быть точным, то считывается не первая, а последняя строка!
|
#14
|
||||
|
||||
Приводи код, который читает текстовый файл. Смотри http://www.delphisources.ru/forum/sh...78&postcount=2
Если вот это: Код:
AssignFile(fL,ListBox1.Items[ListBox1.ItemIndex]); Последний раз редактировалось angvelem, 16.06.2011 в 03:27. |