![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | 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 - это процедура. Она не возвращает никаких значений. На вход она принимает строку, которую добавляет в конец списка строк. Я не совсем понимаю логический смысл. Напиши, что ты пытаешься сделать словами. |