Текущий архив: 2004.11.28;
Скачать: CL | DM;
ВнизСтрока и символы ... трабла Найти похожие ветки
← →
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;
Скачать: CL | DM;
Память: 0.5 MB
Время: 0.037 c