Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Разделение строчек [D5, D7, Win95/98, WinXP]


Страницы:   1 2 3

Александр1 ©   (2004-08-25 06:51:00) 

Здравствуйте уважаемые мастера!
Имеется текстовой файл например 1.txt. В нём записаны несколько строк следующим образом:
1 строка

2 строка

3 строка

Каждая строка разделена пустой строкой (для удобства).
Необходимо считать все строки из файла и распихать их по разным редакторам Memo1, Memo2,  Memo3 соответственно.
Почему строки отделены между собой пробелом, потому что строка может состоять как бы из нескольких строк:

Текст 446486855765
Текст 87878778789789

Т.е. делить надо в том случае если есть пустая строчка!
Заранее спасибо за помощь!


Александр1   (2004-08-27 19:55:00) [21]

Ну или помогите довести до ума этот!

var
 Form1: TForm1;

 a:array[1..3] of TMemo;
 i:integer;

implementation

{$R *.DFM}

procedure TForm1.BitBtn2Click(Sender: TObject);
var F:System.Text;
begin
AssignFile(F, ExtractFilePath(Application.ExeName)+'vopr\1.vop');
Reset(F);
repeat
readln(S);
S := StringReplace(S, ' ', '', [rfReplaceAll] );
if S <> '' then
(FindComponent('Memo'+IntToStr(i)) as TMemo).Text:=S;
Until Eof(F);
end;

На форме находится Memo1, Memo2, Memo3.

Я не понимаю куда засунуть
a[1]:=Memo1;
a[2]:=Memo2;
a[3]:=Memo3;?????????? В цикл?


begin...end   (2004-08-27 19:49:00) [22]

> Александр1   (27.08.04 19:44) [32]

> Может напишите сразу конечный код от начала и до конца

ИМХО, зря ты это сказал.


Александр1   (2004-08-27 19:44:00) [23]

А как же переменная i?

Уважаемый GrayFace!!! Чтобы мне тебя (вас) больше не мучить и себя не мучить, а то так к утру с ума можно сойти, да и вообще я пожалуй скоро забуду зачем я всё это затеял. Может напишите сразу конечный код от начала и до конца и тогда не будет больше проблем, скандалов и т.п.
ПОЖАЛУЙСТА!


begin...end   (2004-08-27 19:31:00) [24]

> Александр1   (27.08.04 18:47) [29]

> Пишет ошибку.

Каков текст ошибки?


GrayFace   (2004-08-27 19:23:00) [25]

vara:array[1..3] of TMemo;
begin
 a[0]:= и т.д.


Александр1   (2004-08-27 18:47:00) [26]

Да я понимаю, что этот сайт не справочная система и что я уже наверное надоел своими глупыми вопросами. Но всё же:
a:array[1..3] of TMemo;
a[1]:=Memo1;
a[2]:=Memo2;
a[3]:=Memo3;
Пишет ошибку.
а – ещё надо как ни будь описывать?
И почему а, а где i.

А на счёт   http://lleo.aha.ru/na/index.shtml, я не обижаюсь. Я вообще в интернете редко на кого обижаюсь.


GrayFace   (2004-08-27 18:31:00) [27]

a:array[1..3] of TMemo;
a[1]:=Memo1;
a[2]:=Memo2;
a[3]:=Memo3;

У тебя можно заменить на это: (FindComponent('Memo'+IntToStr(i)) as TMemo).Text:=S;

И все-таки о морали: Если тебя послали на http://lleo.aha.ru/na/index.shtml, это не значит, что тебя оскорбили.


Александр1   (2004-08-27 18:09:00) [28]

Понимаешь Красный молоток есть процедура

Memo: array [1..3] of Integer;
 i:Integer;

…….
procedure TForm1.BitBtn2Click(Sender: TObject);
var F:System.Text;
s:string;
begin
AssignFile(F, ExtractFilePath(Application.ExeName)+'vopr\1.vop');
Reset(F);
repeat
readln(S);
S := StringReplace(S, ' ', '', [rfReplaceAll] );
if S '' then
  Memo[i].Text := S; //ñþäà íàäî âñòàâèòü, òâîè Memo èëè òî  êóäà õî÷åøü âñòàâèòü
Until Eof(F);
end;

Но она не работает. Компилятор выдаёт ошибку на строчку   Memo[i].Text := S;
Ну это и понятно, она никак  не описана. Говорят надо заводить массив. Ну я сделал, но почему-то не работает.
Туго у меня с этими массивами. Помоги если можешь пожалуйста!


Красный молоток   (2004-08-27 17:37:00) [29]

Memo: array [1..3] of Integer;
Так тебе чего надо-то? Массив TMemo или Integer?


Александр1   (2004-08-27 17:10:00) [30]

Как мне и посоветовали я открыл книжку и вычитал там, что вроде как типы должны быть описаны так:
Memo: array [1..3] of Integer;
 i:Integer;
Но похоже не так, т.к. ничего не работает?
Помогите пожалуйста КАК ВСЁ ТАКИ НАДО?


Андрей Сенченко   (2004-08-27 16:54:00) [31]

Amoeba ©   (27.08.04 16:47) [23]

Но с друго стороны DML... может быть все-таки исправится ?


Amoeba   (2004-08-27 16:47:00) [32]


> Александр1   (27.08.04 16:33) [22]
> И чё такое LMD??????????????

LMD = Lamers must die


Александр1   (2004-08-27 16:33:00) [33]

И чё такое LMD??????????????


Александр1   (2004-08-27 16:08:00) [34]

Ну это та понятно. Ну а сейчас, та всё таки как на счёт i.


Amoeba   (2004-08-27 15:19:00) [35]


> Александр1   (27.08.04 15:05) [19]

Тогда обложись литературой по программированию и читай до полного просветления.

LMD


Александр1   (2004-08-27 15:05:00) [36]

Я чё-то сколько не читал теорию по массивам, так ничего и не понял.
i: array[1..3] of Byte;
так что-ли?. Но чё-то не работает.
Массивы - это больная тема.


Александр1   (2004-08-27 14:51:00) [37]

Amoeba Ну да я так как раз и думал. Только как его теперь правильно описать??


Amoeba   (2004-08-27 14:39:00) [38]


> Александр1   (27.08.04 14:33) [16]

Memo в данном случае не объект класса TMemo, а массив таких объектов. А вот Memo[i] уже и будет собственно тем Memo, в которое вставляешь текст.


Александр1   (2004-08-27 14:33:00) [39]

Ну вот из за каких-то скобочек квадратных столько шума подняли.
Спасибо begin...end за помощь!
Я понимаю, что у вас есть ещё один повод на меня покричать, но всё равно деваться некуда.
Memo[i].Text := S; Не работает. Тут ведать чё-то с переменной i. Какого типа i. А может сдесь вообще массив нужен??????
Вы уж не ругайтесь сильно, помогите лучше добрые люди пожалуйста!!!!


Андрей Сенченко   (2004-08-25 14:26:00) [40]

Александр1   (25.08.04 14:00) [12]

Жмем на StringReplace комбинацию Ctrl-F1, читаем.

function StringReplace(const S, OldPattern, NewPattern: string; Flags: TReplaceFlags): string;


Страницы:   1 2 3

Наверх

Титульная страница Поиск, карта сайта Написать письмо