Главная страница
    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.04 c
1-1108671311
ASM
2005-02-17 23:15
2005.03.06
AutoLoad


1-1108970320
Niru
2005-02-21 10:18
2005.03.06
Экспорт


11-1089967844
Falcon
2004-07-16 12:50
2005.03.06
ImageList и динамическая загрузка.


14-1108379603
*Pavel
2005-02-14 14:13
2005.03.06
Знатокам советских ОЗУ (на 565 РУ5Д)


14-1108516196
БаТоН
2005-02-16 04:09
2005.03.06
ПОЧЕМУ foo и bar() ?





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский