![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как скопировать чётные символы строки в переменную ? [D6, WinXP]
deramse © (2005-02-19 13:56:00)Например чтобы из строки 123456789 получилось 13579
Делаю так :
var
s:string;
i,modi:integer;
begin
for i:=1 to length(edit1.Text) do begin
//showmessage(copy(edit1.Text,length(s),i));
if i mod 2 = 0 then
if s = '' then
s:=copy(edit1.Text,0,i+1) else
S:=S+copy(edit1.Text,i-1,i);
end;
edit2.Text:=s;
Выдаёт какую то лажу :(
Юрий Зотов (2005-02-19 14:29:00) [1]Да... уж...
Вот простейший (но не лучший) вариант:
S := '';
for i := 2 to Length(Edit1.Text) do
if Odd(i) then S := S + Edit1.Text[i];
Но лучше сделать так:
SetLength(S, Length(Edit1.Text) div 2);
for i := 1 to Length(S) do
S[i] := Edit1.Text[2*i];
MBo (2005-02-19 14:27:00) [2]>Блин не получаеться :(
Блин, учи язык. И математику тоже. Копирование нечетных(именно такими являются 1,3,5,7...) символов
l:=(1 + Length(Edit1.Text)) div 2;
SetLength(s,l);
for i:=1 to l do
s[i]:=Edit.Text[2*i-1];
Kerk (2005-02-19 14:24:00) [3]deramse (19.02.05 14:17) [4]
Не подходит
а головой думать умеем? ну пропустил я чуть-чуть.. и что?
for i := 1 to length(edit1.text) do
if i mod 2 = 0 then s := s +copy(edit1.text,i,1);
GanibalLector (2005-02-19 14:22:00) [4]for i := 1 to length(edit1.text) do
if i mod 2 = 1 then s := S+copy(edit1.text,i,1);
Caption:=S;
deramse (2005-02-19 14:19:00) [5]> Neznaika © (19.02.05 14:09) [3]
Блин не получаеться :(
deramse (2005-02-19 14:17:00) [6]> Kerk © (19.02.05 14:04) [2]
Не подходит
Neznaika (2005-02-19 14:09:00) [7]Может стоит S присвоить какое-нибудь значение до того как начнешь ее сравнивать с ''. Например тоже ''.
И вообще не понял зачем тебе проверка S на пустоту... Просто присваевай ей каждый второй символ edita в цикле...
Kerk (2005-02-19 14:04:00) [8]
for i := 1 to length(edit1.text) do
if i mod 2 = 0 then s := copy(edit1.text,i,1);
Anatoly Podgoretsky (2005-02-19 14:03:00) [9]Есть хорошая функция Odd это чтобы не связываться с MOD
А остальное просто мусор и ктому неясное значения слова лажа.