Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 15.12.2008, 13:16
mazaev87 mazaev87 вне форума
Прохожий
 
Регистрация: 02.12.2008
Сообщения: 4
Репутация: 10
По умолчанию ПОМОГИТЕ С ОШИБКОЙ

ПРОБЛЕМА ВЫВОДЕ ИЗ ФАЙЛА ТЕКСТА В МЕМО ОКНО!ПОМОГИТЕ,ПЖЛ, ЗАРАНЕЕ БЛАГОДАРЕН!

Код:
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: Пользуемся тегами, иначе будет наказание. И не кричи, плз (большиби буквами не надо писать).
Вложения
Тип файла: rar программа.rar (5.4 Кбайт, 2 просмотров)
Ответить с цитированием
  #2  
Старый 15.12.2008, 13:23
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,096
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

Маньяк!!!

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  
Старый 15.12.2008, 13:41
mazaev87 mazaev87 вне форума
Прохожий
 
Регистрация: 02.12.2008
Сообщения: 4
Репутация: 10
По умолчанию

но проблема в том, дан, не просто текстовый файл,а его примерное содержание выглядит так:
(((П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  
Старый 15.12.2008, 13:49
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,096
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

Ну у тебя и должны там возникнуть проблемы.

Append - это процедура. Она не возвращает никаких значений. На вход она принимает строку, которую добавляет в конец списка строк.

Я не совсем понимаю логический смысл. Напиши, что ты пытаешься сделать словами.
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра
Комбинированный вид Комбинированный вид

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 03:33.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025