Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.04.01;
Скачать: CL | DM;

Вниз

Как считать символы в memo после   Найти похожие ветки 

 
Ирина   (2002-03-18 11:25) [0]

Здраствуйте уважаемые, не могли бы Вы подсказать как можно считать в переменную все слова и тэги, находящиеся в memo после символа "#". Заранее благодарна.


 
Виктор Щербаков ©   (2002-03-18 11:30) [1]

Copy(Memo1.Text, Pos("#", Memo1.Text) + 1, Length(Memo1.Text));


 
Song ©   (2002-03-18 12:44) [2]

2Виктор Щербаков © (18.03.02 11:30)
Copy(Memo1.Text, Pos("#", Memo1.Text) + 1, Length(Memo1.Text) -Pos("#", Memo1.Text));


 
Ирина   (2002-03-18 12:44) [3]

Делаю вот так :
var
f: textfile;
s: string;
begin
AssignFile(f,"text.txt");
Reset(f);
while not eof(f) do
begin
readln(f,s);
S := Copy(S, Pos("#", S) + 1, Length(S));
memo2.Text:= s;

В случае если в текстовом файле text.txt несколько строк после символа # он показывает только последний из них, а все предудущие теряет, в чем тут дело?


 
Song ©   (2002-03-18 12:48) [4]

2Ирина
1. Исправьте как я уточнил выше.
2. Не пойму как это "если несколько строк после символа #"? Ведь Вы считываете в S всего лишь одну строку.


 
gek   (2002-03-18 12:49) [5]


readln(f,s);
i:=Pos("#", S);
if i <> 0 then
S := Copy(S, i + 1, (Length(S) - i));
memo2.lines.add(s);




 
Виктор Щербаков ©   (2002-03-18 12:52) [6]

Song © (18.03.02 12:48)
function Copy(S; Index, Count: Integer): string;
...
If Count specifies more characters or array elements than are available, only the characters or elements from S[Index] to the end of S are returned.


 
MBo ©   (2002-03-18 12:55) [7]

вместо memo2.Text:= s; - это каждый раз замена всего
надо memo2.lines.add(s);
copy c излишней длиной работает, хотя и смотрится сомнительно.
бывает полезно.


 
Song ©   (2002-03-18 13:03) [8]

2Виктор Щербаков © (18.03.02 12:52)
В принципе Вы правы конечно, но так программисты не поступают. Во всём нужен порядок. Лучше сделать красивей, чем уповать на такие правила, ИМХО конечно.


 
Ирина   (2002-03-18 19:10) [9]

Господи, сколько же тут тонкостей :( если текст расположен в txt файле таким образом:

привет#пока

то отлично работает вот этот код:
readln(f,s);
i:=Pos("#", S);
if i <> 0 then
S := Copy(S, i + 1, (Length(S) - i));
memo1.lines.add(s);

Однако, если текст расположен вот так(именно мой вариант):

привет
#
пока

то код уже не работает, считываются символы находящиеся и до "#". Большая просьба все-таки помочь разобраться мне с этой проблемой.


 
Anatoly Podgoretsky ©   (2002-03-18 20:21) [10]


while not eof(f) do begin
readln(f,s);
if Pos("#", S) <> 0 then begin
S := Copy(S, Pos("#", S) + 1, Length(S));
memo1.lines.add(s);
Break;
end;
end;
while not eof(f) do
begin
readln(f,s);
memo1.lines.add(s);
end;


 
Kornet ©   (2002-03-19 07:37) [11]

Могу предложить мой вариант реализации:

type TArrStr = array of string;
......
function explode(Separator:Char; Str:string):TArrStr;
var tmp:string;
marray:TArrStr;
size_array, len:integer;
begin
tmp:=Str;
size_array:=1;
while Pos(Separator, tmp) > 0 do
begin
len:=Pos(Separator, tmp);
SetLength(marray,size_array);
marray[size_array-1]:=TrimLeft(TrimRight(copy(tmp,1,len-1)));
tmp:=copy(tmp,len+1,Length(tmp)-len);
inc(Size_array);
end;
SetLength(marray,size_array);
marray[size_array-1]:=TrimLeft(TrimRight(tmp));
Result:=marray;
end;



Страницы: 1 вся ветка

Текущий архив: 2002.04.01;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.013 c
1-232
cok
2002-03-20 18:36
2002.04.01
Tray


3-77
Dimedrol
2002-02-13 10:32
2002.04.01
начинаю с Interbase.


3-23
amamed_3071
2002-03-05 08:17
2002.04.01
Error Time Out expected Помогите


3-47
ТеньЛуны
2002-03-07 12:12
2002.04.01
Oracle


1-246
SlavaLamer
2002-03-19 14:48
2002.04.01
Webbrouser