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

Вниз

Срез длинной строки   Найти похожие ветки 

 
lobach ©   (2006-10-28 10:55) [0]

помогите с этой функцией, она должна срезать строку(до длинны num), если в ней более num символов
function srez(stroka: string; num:integer): String;
var
i: integer;
ns: String;
begin
i:=1;
if Length(stroka) = num then
result:=stroka;
if Length(stroka) < num then
result:=stroka
else begin
while i <= num do
result:=ns+stroka[i];
i:=i+1;
end;
end;
Помогите


 
Virgo_Style ©   (2006-10-28 11:01) [1]

if num>length(Stroka) then SetLength(Stroka, num); ?


 
ЮЮ ©   (2006-10-28 11:04) [2]

1) Copy(Str, 1, n);

2) If Length(Str) > n then SetLength(str, n);

3) если непременоо нужен srez и твой алгоритм, то перед циклом Result := "":


 
Anatoly Podgoretsky ©   (2006-10-28 11:08) [3]

В паскале есть оператор <= и делать поэтому двумя командами некрасиво.
В Дельфи есть оператор SetLength, который устанавливает строку без всяких циклов посимвольного копирования. Имея на руках данные карты функция сокращается до одной строки if then else.
А вот само написание данной строки это твое домашнее задание, если не справишься, значит программирование не твое.


 
Virgo_Style ©   (2006-10-28 11:08) [4]

Virgo_Style ©   (28.10.06 11:01) [1]

Ой, ну конечно же, num<length(Stroka) ! :-[


 
Anatoly Podgoretsky ©   (2006-10-28 11:11) [5]

Конечно же нет


 
lobach ©   (2006-10-28 11:23) [6]


> А вот само написание данной строки это твое домашнее задание,
> если не справишься, значит программирование не твое.

Домашнее задание выполнено:
function srez(stroka: string; num:integer): String;
begin
if length(stroka) <= num then
result:=stroka
else
SetLength(stroka, num);
result:=stroka;
end;

Всем спасибо!!!


 
Anatoly Podgoretsky ©   (2006-10-28 11:27) [7]

Задание выполнено не совсем верно, а точнее не верно, еасть побочные эффекты.
Первая часть правильна, а вот часть должна быть выполнена с помощью функции Copy.
Вот тогда это будет правильно и на одну не нужную команду меньше, но если ты хочешь ее использовать, то надо переделать, первой строкой присвоение строки результату и второй строкой если результат длиннее нормы, то обрезать его, а не stroka


 
Ketmar ©   (2006-10-28 14:43) [8]

>[6] lobach(c) 28-Oct-2006, 11:23
>Домашнее задание выполнено:
тройка. один балл добавлен за энтузиазм. Copy(), F1.


 
vidiv ©   (2006-10-28 22:10) [9]

блин... одна строка всего:
Str := copy(Str, 1, num);


 
Пусик ©   (2006-10-28 23:21) [10]

function srez(stroka: string; num:integer): String;
begin
 if stroka<>""
   then Result := Copy(stroka,1,num)
   else Result := "";
end;


 
Ketmar ©   (2006-10-28 23:39) [11]

>[10] Пусик(c) 28-Oct-2006, 23:21
спрячь. и никому не показывай.


 
Пусик ©   (2006-10-28 23:50) [12]


> спрячь. и никому не показывай.

С чего бы это?


 
Пусик ©   (2006-10-28 23:51) [13]

Я, в отличие от некоторых, не считаю зазорным свой код показывать здесь.


 
Ketmar ©   (2006-10-29 00:02) [14]

>[12] Пусик(c) 28-Oct-2006, 23:50
>С чего бы это?
с того, что не надо начинающих учить невесть чему. в частности -- ваять монстров, когда достаточно одной Copy().

зыж кого интересует мой код -- у меня для этого сайт есть. ага.


 
DVM ©   (2006-10-29 00:02) [15]


> Первая часть правильна, а вот часть должна быть выполнена
> с помощью функции Copy.

и потом Paste :)


 
Пусик ©   (2006-10-29 00:07) [16]


> Ketmar ©   (29.10.06 00:02) [14]
> >[12] Пусик(c) 28-Oct-2006, 23:50>С чего бы это?с того,
> что не надо начинающих учить невесть чему. в частности -
> - ваять монстров, когда достаточно одной Copy().


Приведи рабочий код в одну строку.


 
Орион ©   (2006-10-29 00:10) [17]

> [16] Пусик ©   (29.10.06 00:07)

Result:=Copy(stroka, 1, num);
Полностью рабочий код.


 
Пусик ©   (2006-10-29 00:11) [18]


> > [16] Пусик ©   (29.10.06 00:07)Result:=Copy(stroka, 1,
>  num);Полностью рабочий код.


Ответ неверный.


 
Орион ©   (2006-10-29 00:12) [19]

> [18] Пусик ©   (29.10.06 00:11)

обоснуй.


 
Ketmar ©   (2006-10-29 00:13) [20]

>[19] Орион(c) 29-Oct-2006, 00:12
>обоснуй.
ага. мне тоже любопытно, как наша непримиримая воительница справится.


 
Пусик ©   (2006-10-29 00:28) [21]

Да, признаю, ошибку.... Спутала с другой функцией.


 
vidiv ©   (2006-10-29 16:06) [22]


> Да, признаю, ошибку.... Спутала с другой функцией.

Так тебе!!! Женщина =))


 
Пусик ©   (2006-10-29 16:41) [23]


> vidiv ©   (29.10.06 16:06) [22]
> > Да, признаю, ошибку.... Спутала с другой функцией.Так
> тебе!!! Женщина =))


А представь некого мужчину в такой ситуации.
Да нос об стол разобьет, но ошибку не признает.
(к слову - как раз одно из проявлений ламеризма).


 
MetalFan_pda   (2006-10-29 17:03) [24]

а еще вариант!
Delete(str,trimcount+1,maxint)


 
Ketmar ©   (2006-10-29 17:05) [25]

>[23] Пусик(c) 29-Oct-2006, 16:41
>А представь некого мужчину в такой ситуации.
>Да нос об стол разобьет, но ошибку не признает.
обобщённые (или обезличеные) выводы без доказательной базы -- это разве не признак того же самого?


 
MikePetrichenko ©   (2006-10-29 23:43) [26]

Ага. Один уже надоказывался с доказательной базой.
http://delphimaster.net/view/2-1162141206/
:)


 
Ketmar ©   (2006-10-29 23:48) [27]

>[26] MikePetrichenko(c) 29-Oct-2006, 23:43
>Ага. Один уже надоказывался с доказательной базой.
>:)
так не опровергнуто ведь! %-)


 
MikePetrichenko ©   (2006-10-29 23:56) [28]


> так не опровергнуто ведь! %-)

Так вроде и не доказано... :(


 
Ketmar ©   (2006-10-30 00:03) [29]

>[28] MikePetrichenko(c) 29-Oct-2006, 23:56
>Так вроде и не доказано... :(
так мы ж сошлись на том, что все правы. раз все -- надо 100 делить на три. согласен даже на просто отбрасывание дробной части. %-)


 
Ketmar ©   (2006-10-30 00:03) [30]

1000 делить, конечно %-)



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

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

Наверх





Память: 0.55 MB
Время: 0.044 c
4-1151158689
max1981
2006-06-24 18:18
2006.11.12
возможно-ли из своей программы закрыть окно проводника


2-1162028092
Anubis
2006-10-28 13:34
2006.11.12
Подскажите с чего начать


2-1162125949
Проггер из библиотеки
2006-10-29 15:45
2006.11.12
TMemoryStream и расход памяти


15-1161684138
Slava812
2006-10-24 14:02
2006.11.12
Загадка (срочно нужен ответ)


11-1136632952
Thaddy
2006-01-07 14:22
2006.11.12
D2005 and D2006 and KOL





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