![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
![]() ПРОБЛЕМА ВЫВОДЕ ИЗ ФАЙЛА ТЕКСТА В МЕМО ОКНО!ПОМОГИТЕ,ПЖЛ, ЗАРАНЕЕ БЛАГОДАРЕН!
Код:
unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) Button1: TButton; Button2: TButton; Label1: TLabel; Memo1: TMemo; OpenDialog1: TOpenDialog; procedure Button1Click(Sender: TObject); procedure Button2Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.Button1Click(Sender: TObject); begin OpenDialog1.Execute; end; procedure TForm1.Button2Click(Sender: TObject); var AFile:textFile; Field,data,vals:Tstringlist; i,J:integer; line,line1,rec,a:string; Potok:TStringStream; begin Field:=TStringList.Create; data:=TStringlist.Create; Potok:=TStringStream.Create(rec); try begin Assignfile(Afile,openDialog1.FileName); Reset(Afile); While not eof(Afile) do begin Readln(AFile,rec); potok.WriteString(rec); try finally end; end; System.CloseFile(Afile); line:=Potok.DataString; line1:=Stringreplace(line,')))','^',[rfReplaceall]); line:=stringReplace(line1,' ','_',[rfReplaceall]); field.Clear; data.Clear; vals.Clear; Field.Delimiter:='^'; Vals.Delimiter:='|'; Data.Delimiter:='='; Field.DelimitedText:=line; for i:=0 to Field.Count -1 do begin Vals.DelimitedText:=Field[i]; for j:=0 to Vals.Count -1 do begin memo1.Lines.Append(Vals[j]); data.DelimitedText:=Vals[j]; if j=0 then begin data[0]; a:=data[0]; delete(a,1,3); // label2.Caption:=a; memo1.lines.Append(j+1).AsString:=a end else memo1.Lines.Append(data[0]).AsString:=data[1]; end; end; finally end; end; end. lmikle: Пользуемся тегами, иначе будет наказание. И не кричи, плз (большиби буквами не надо писать). |
#2
|
|||
|
|||
![]() Маньяк!!!
1. У Memo есть метод: TMemo.Lines.LoadFromFile - загружает файл. 2. Там же есть свойство TMemo.Lines.Text, представляющее загруженные данные в виде одной строки. Т.е. твой метод должен выглядеть примерно так: Код:
Memo1.Lines.LoadFromFile(AFileName); Memo1.Lines.Text := Stringreplace(Memo1.Lines.Text,')))','^',[rfReplaceall]); Memo1.Lines.Text := stringReplace(Memo1.Lines.Text,' ','_',[rfReplaceall]); а потом уже делаешь с данными то, что тебе надо. |
#3
|
|||
|
|||
![]() но проблема в том, дан, не просто текстовый файл,а его примерное содержание выглядит так:
(((П3;У|2=151|3=20060128|4=1137|5=Бородино|18=15|1 9=20080128|21=РОССИЯ;Бородинское;Восточная;10;69)) ) (((П3;У|2=141|3=20080128|4=1137|5=Смолино|18=15|19 =20070128|21=РОССИЯ;Смолино;южное;10;69)))! это я в кратце накидал текс, но примерно такой вид, и его надо изменить програмно и уже в готовом виде вывести в мемо окно! Проблема в последних строчках! Код:
memo1.Lines.Append(j+1).AsString:=a end else memo1.Lines.Append(data[0]).AsString:=data[1]; end; end; finally end. lmikle: последнее китайское предупреждение. Используйте теги оформления!!! |
#4
|
|||
|
|||
![]() Ну у тебя и должны там возникнуть проблемы.
Append - это процедура. Она не возвращает никаких значений. На вход она принимает строку, которую добавляет в конец списка строк. Я не совсем понимаю логический смысл. Напиши, что ты пытаешься сделать словами. |