Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.11.12;
Скачать: CL | DM;

Вниз

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

 
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;
Скачать: CL | DM;

Наверх




Память: 0.53 MB
Время: 0.044 c
15-1161788868
nordic3
2006-10-25 19:07
2006.11.12
Операции над двоичными числами


2-1162191258
Alex_C
2006-10-30 09:54
2006.11.12
Координаты мыши в мемо


15-1161783154
Ne-Ld
2006-10-25 17:32
2006.11.12
Вы занимаетесь спортом? Каким? Вам нравится?


2-1161851146
dest81
2006-10-26 12:25
2006.11.12
access &amp; bde


2-1161929308
viper03
2006-10-27 10:08
2006.11.12
помогите с SQL запросом