Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2005.03.06;
Скачать: [xml.tar.bz2];

Вниз

Как скопировать чётные символы строки в переменную ?   Найти похожие ветки 

 
deramse   (2005-02-19 13:56) [0]

Например чтобы из строки 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;

Выдаёт какую то лажу :(


 
Anatoly Podgoretsky ©   (2005-02-19 14:03) [1]

Есть хорошая функция Odd это чтобы не связываться с MOD
А остальное просто мусор и ктому неясное значения слова лажа.


 
Kerk ©   (2005-02-19 14:04) [2]

for i := 1 to length(edit1.text) do
 if i mod 2 = 0 then s := copy(edit1.text,i,1);


 
Neznaika ©   (2005-02-19 14:09) [3]

Может стоит S присвоить какое-нибудь значение до того как начнешь ее сравнивать с "". Например тоже "".
И вообще не понял зачем тебе проверка S на пустоту... Просто присваевай ей каждый второй символ edita в цикле...


 
deramse   (2005-02-19 14:17) [4]

> Kerk ©   (19.02.05 14:04) [2]

Не подходит


 
deramse   (2005-02-19 14:19) [5]

> Neznaika ©   (19.02.05 14:09) [3]  

Блин не получаеться :(


 
GanibalLector ©   (2005-02-19 14:22) [6]

for i := 1 to length(edit1.text) do
if i mod 2 = 1 then s := S+copy(edit1.text,i,1);
Caption:=S;


 
Kerk ©   (2005-02-19 14:24) [7]

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);


 
MBo ©   (2005-02-19 14:27) [8]

>Блин не получаеться :(
Блин, учи язык. И математику тоже. Копирование нечетных (именно такими являются 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];


 
Юрий Зотов ©   (2005-02-19 14:29) [9]

Да... уж...

Вот простейший (но не лучший) вариант:
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];



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

Форум: "Основная";
Текущий архив: 2005.03.06;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.032 c
3-1107210202
ka
2005-02-01 01:23
2005.03.06
Помогите с диагнозом и лечением.


1-1109084226
Vyacheslav
2005-02-22 17:57
2005.03.06
Имя Закладки в Excel


1-1108593960
VikUA
2005-02-17 01:46
2005.03.06
Стоит ли покупать лиценз.Delphi 8 prof


3-1107349942
Топпер
2005-02-02 16:12
2005.03.06
FastReport нумерация строк данных


11-1090862232
DJ DIZzY
2004-07-26 21:17
2005.03.06
как сделать скин





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский