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

Вниз

Строка и символы ... трабла   Найти похожие ветки 

 
noob ©   (2004-11-16 01:43) [0]

есть строка - i, как в ней удалитьвсе пробелы ... погоите ламаку


 
Поручик ©   (2004-11-16 01:52) [1]

var j: integer;
i:string;
begin
i:="Привет из Москвы";
for j:=0 to length(i) do if i[j]=" " then delete(i,j,1);
end;


 
aus   (2004-11-16 03:39) [2]

при этом length(i) меняется


 
ЮЮ ©   (2004-11-16 03:49) [3]

для ламаков (и не только) есть unit для работы со строками StrUtils:
function AnsiReplaceStr(const AText, AFromText, AToText: string): string;

i := AnsiReplaceStr(i, " ", "");


 
Поручик ©   (2004-11-16 04:17) [4]

aus   (16.11.04 3:39) [2]
при этом length(i) меняется

Это не влияет.


 
Германн ©   (2004-11-16 04:24) [5]

2 Поручик ©   (16.11.04 04:17) [4]
Успехов тебе в борьбе с AV!
И еще. Прочитай где-нибудь, что помимо to есть еще и downto! Ей-богу пригодится в жизни!


 
Поручик ©   (2004-11-16 04:28) [6]

Последнее время меня все за дурака считают.

То, что я написал - правильно в данной ситуации:
1. Это работает в том виде в котором я привел
2. Для Нуба сойдет.


 
begin...end ©   (2004-11-16 08:56) [7]


> [6] Поручик ©   (16.11.04 04:28)


> 1. Это работает в том виде в котором я привел

Как оно может нормально работать? Ты, наверное, что-то путаешь; я уж не говорю о том, что нумерация символов в строке начинается с единицы; включи для верности Range Checking и выполни свой код, о результатах можно не сообщать.

> 2. Для Нуба сойдет.

Чего ж ты Нуба так не уважаешь, он тебе этого не простит.


 
Ega23 ©   (2004-11-16 09:28) [8]

Вообще-то такие циклы надо через While организовывать, а не через for ....


 
Gloomer ©   (2004-11-16 09:44) [9]

> [2] Поручик
Правильнее было бы,как приведено ниже, правда вводится еще одна переменная, но это надеюсь не страшно :-)
var j: integer;
i,i1:string;
begin
i:="Привет из Москвы";
i1:="";
for j:=0 to length(i) do if i[j]<>" " then i1:=i[j];
i:=i1;
end;

А в общем случае не стоит игнорировать совет ЮЮ[3]


 
Verg ©   (2004-11-16 09:47) [10]

В че сегодня, издеваетесь что ли ?!


 
Ega23 ©   (2004-11-16 09:52) [11]

Gloomer ©   (16.11.04 09:44) [9]

Ну и что у тебя получится?


 
begin...end ©   (2004-11-16 10:05) [12]


> [8] Ega23 ©   (16.11.04 09:28)

Можно и через while; только я не вижу причин использовать здесь вообще какие-то циклы, поскольку существует стандартная функция Trim.

> [9] Gloomer ©   (16.11.04 09:44)

Твоё решение ещё хуже; во-первых, ты не учёл замечание насчёт индексации символов; а во-вторых, в результате выполнения твоего кода строка i либо будет пустой, либо будет содержать 1 символ; хотя даже и так говорить некоректно, из-за некорректности самого кода.


 
REA   (2004-11-16 10:09) [13]

Было уже год назад. Дошли до того, что стали на асме соревноваться кто лучше удалит. Предлагаю тему удаления пробелов считать запрещенной.


 
Verg ©   (2004-11-16 10:11) [14]

Так же предлагаю запретить телепередачу "Спокойной ночи малыши" - об чем они там вообще, деский сад какой-то. Это все уже было лет ц-ать назад.


 
Gloomer ©   (2004-11-16 10:12) [15]

Ну ладно вам, я еще не проснулся :-(
for j:=1 to length(i) do if i[j]<>" " then i1:=i1+i[j];

>[12] begin...end
надеюсь, я правильно испавился


 
begin...end ©   (2004-11-16 10:16) [16]


> [15] Gloomer ©   (16.11.04 10:12)

Молодец; теперь, по крайней мере, код будет корректно работать.


 
Ega23 ©   (2004-11-16 10:47) [17]

2 begin...end ©   (16.11.04 10:05) [12]

Можно и через while; только я не вижу причин использовать здесь вообще какие-то циклы, поскольку существует стандартная функция Trim.

Trim не удаляет ВСЕ пробелы из строки. Только справа-слева.


 
begin...end ©   (2004-11-16 10:56) [18]


> [17] Ega23 ©   (16.11.04 10:47)

Да, ты прав, это я ошибся, но всё равно есть другие стандартные функции типа StringReplace или [3].


 
Amoeba ©   (2004-11-16 11:18) [19]

Используй бибилиотеку ф-й для работы со строками QStrings.


 
Kergma   (2004-11-16 11:38) [20]

А можно я, можно.....? :)

function Kill20( str : string) : string;
begin
 if length(str) > 1 then
  result := Kill20(str[1]) + Kill20(copy(str,2,length(str)))
  else
   if str = " " then result := "" else result := str;
end;

test passed.


 
Verg ©   (2004-11-16 11:50) [21]


> copy(str,2,length(str))


Мдяяя....


 
Zhekson   (2004-11-16 11:58) [22]

Давненько я сюда не заглядывал..., а зря... тут всё так же весело...


 
Zhekson   (2004-11-16 12:07) [23]

если вариант [3] не подходит то попробуй:

Невозможно отобразить страницу

Эта страница сейчас недоступна. Возможно, это вызвано техническими проблемами на веб-узле, или требуется изменение параметров обозревателя.


 
Zhekson   (2004-11-16 12:14) [24]

var
ch: char;

а если, предположим, читать строку посимвольно и если символ = " " то к конечной строке не прибавлять этот символ
 else StrOut := StrOut + ch.


 
palva ©   (2004-11-16 13:06) [25]

Ребяты, такие задачи решаются следующим образом:
var j: integer;
i:string;
begin
i:="Привет из Москвы";
for j:=Length(i) DownTo 1 if i[j]=" " then delete(i,j,1);
end;


 
Ega23 ©   (2004-11-16 14:02) [26]

function DelSpase(const aStr:String):String;
var
i:Integer;
begin
Result:="";
for i:=1 to Length(aStr) do
 if aStr(i)<>" "then Result:=Result+aStr(i);
end;



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

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

Наверх




Память: 0.5 MB
Время: 0.034 c
1-1100254160
denis24
2004-11-12 13:09
2004.11.28
пернос слов с memo


14-1100189755
Настенька!!!
2004-11-11 19:15
2004.11.28
будни!!!


1-1100177535
andrey__
2004-11-11 15:52
2004.11.28
TServiceApplication - Pause, Continue, Stop


3-1099061248
Kergma
2004-10-29 18:47
2004.11.28
внешний ключ хочю.................


14-1100067128
Kerk
2004-11-10 09:12
2004.11.28
И еще раз про образование.





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