![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Разделение строчек [D5, D7, Win95/98, WinXP]
Александр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;