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

Вниз

SetLength, Trim в BP   Найти похожие ветки 

 
ArtemESC ©   (2006-05-06 19:18) [0]

Забыл названия этих функций в BP?


 
Динамические строки в ВР   (2006-05-06 19:22) [1]

нас там нет вроде.


 
Джо ©   (2006-05-06 19:27) [2]

Дин. массивов нет, Trim нет, SetLength (кажется) нет. Для задания длины строки используй s[0] := длина.


 
kilkennycat ©   (2006-05-06 19:28) [3]

раз забыл, значит, есть.


 
ArtemESC ©   (2006-05-06 20:30) [4]

>>Джо ©   (06.05.06 19:27) [2]
 Чего то не работает...


 
Джо ©   (2006-05-06 20:31) [5]

> [4] ArtemESC ©   (06.05.06 20:30)
> >>Джо ©   (06.05.06 19:27) [2]
> Чего то не работает...

Что и как не работает? s[0]?


 
palva ©   (2006-05-06 20:33) [6]

> Чего то не работает...

s[0] := Char(длина)


 
Marser ©   (2006-05-06 21:08) [7]

Открою небольшой секрет - SetLength когда-то даже в Delphi не было, аж до четвёртой версии.

> Джо ©   (06.05.06 19:27)
> Дин. массивов нет, Trim нет, SetLength (кажется) нет. Для
> задания длины строки используй s[0] := длина.

Сам пробовал? Больно на бред похоже. Я смотрел на эту строку, протирал глаза, снова смотрел, потом попробовал и в Делфи и в ТР. Всюду обрезало.


 
Lamer@fools.ua ©   (2006-05-06 21:35) [8]

>>Marser ©   (06.05.06 21:08) [7]

>Сам пробовал? Больно на бред похоже.
Этот бред неплохо описан в документации. Борланд Паскалевский String — это ShortString в Delphi.


 
Marser ©   (2006-05-06 21:45) [9]

> [8] Lamer@fools.ua ©   (06.05.06 21:35)
> >>Marser ©   (06.05.06 21:08) [7]
>
> >Сам пробовал? Больно на бред похоже.
> Этот бред неплохо описан в документации. Борланд Паскалевский
> String — это ShortString в Delphi.

Я помню. Но мне всю дорогу казалось, что длина определяется единожды при объявлении, а далее s[0] можно только прочитать. Вроде как мои эксперименты это подтвердили.
Можно пример кода, который покажет, что я не прав?


 
Lamer@fools.ua ©   (2006-05-06 21:46) [10]

>Можно пример кода, который покажет, что я не прав?

[6] :-)


 
Marser ©   (2006-05-06 21:47) [11]

> [10] Lamer@fools.ua ©   (06.05.06 21:46)
> >Можно пример кода, который покажет, что я не прав?
>
> [6] :-)

[7] :-)


 
Lamer@fools.ua ©   (2006-05-06 21:48) [12]

P.S.

procedure TForm1.FormCreate(Sender: TObject);
var
 S: ShortString;
begin
 S := "Here is some crap text...";
 S[0] := Char(12);
 ShowMessage(S + " [censored] text...");
end;


 
Marser ©   (2006-05-06 21:49) [13]

Там написано assigning a value to S[0], like calling SetLength, changes the length of S
Но лично я этого не заметил...


 
Marser ©   (2006-05-06 21:50) [14]

> [12] Lamer@fools.ua ©   (06.05.06 21:48)
> P.S.
>
> procedure TForm1.FormCreate(Sender: TObject);
> var
> S: ShortString;
> begin
> S := "Here is some crap text...";
> S[0] := Char(12);
> ShowMessage(S + " [censored] text...");
> end;

Ага, батенька! Ты не объявил длину. На таких условиях без проблем, даже верю, но проделай тоже самое, задав длину в объявлении.


 
jack128 ©   (2006-05-06 21:50) [15]

Marser ©   (06.05.06 21:45) [9]
Но мне всю дорогу казалось, что длина определяется единожды при объявлении, а далее s[0] можно только прочитать

при декларации определяется МАКСИМАЛЬНО возможная длина строки.  s[0] - отределяет ТЕКУЩУЮ длину. Потому, естественно, writable


 
jack128 ©   (2006-05-06 21:53) [16]

Marser ©   (06.05.06 21:08) [7]
Открою небольшой секрет - SetLength когда-то даже в Delphi не было, аж до четвёртой версии.

а как же задавалась длина long string"ов тогда??  Или они тоже только в 4ой дельфи появились? ;-)


 
Marser ©   (2006-05-06 21:58) [17]

> [15] jack128 ©   (06.05.06 21:50)
> Marser ©   (06.05.06 21:45) [9]
> Но мне всю дорогу казалось, что длина определяется единожды
> при объявлении, а далее s[0] можно только прочитать
> при декларации определяется МАКСИМАЛЬНО возможная длина
> строки.  s[0] - отределяет ТЕКУЩУЮ длину. Потому, естественно,
> writable

Согласен. Но в таком случае уже будет выделено 255 байт, поэтому какой смысл в жонглировании с s[0]?

> а как же задавалась длина long string"ов тогда??  Или они
> тоже только в 4ой дельфи появились? ;-)

Это вопрос или подначка?


 
Lamer@fools.ua ©   (2006-05-06 21:59) [18]

>Ага, батенька! Ты не объявил длину. На таких условиях без проблем, даже верю, но проделай тоже самое, задав длину в объявлении.

Ну заменил
S: ShortString;
на
S: String[100];

Результат тот же. Что ещё изволите, барин? ;o)


 
Marser ©   (2006-05-06 22:02) [19]

> [18] Lamer@fools.ua ©   (06.05.06 21:59)
> >Ага, батенька! Ты не объявил длину. На таких условиях без
> проблем, даже верю, но проделай тоже самое, задав длину
> в объявлении.
>
> Ну заменил
> S: ShortString;
> на
> S: String[100];
>
> Результат тот же. Что ещё изволите, барин? ;o)

А не всё ли равно, что 100, что 255?
Я тестировал shortstring[4]. Сделать его 8 невозможно, что логично вытекает из [15].

> а как же задавалась длина long string"ов тогда??  Или они
> тоже только в 4ой дельфи появились? ;-)

А разве они тогда были?


 
Lamer@fools.ua ©   (2006-05-06 22:05) [20]

>>Marser ©   (06.05.06 22:02) [19]

>А не всё ли равно, что 100, что 255?
По-моему, очевидно, что в некоторых случаях не всё равно.

>А разве они тогда были?
Кхм... Я Long String ещё с D2 помню (правда, смутно). Но в D3 точно были.


 
Marser ©   (2006-05-06 22:14) [21]

> [20] Lamer@fools.ua ©   (06.05.06 22:05)
> >>Marser ©   (06.05.06 22:02) [19]
>
> >А не всё ли равно, что 100, что 255?
> По-моему, очевидно, что в некоторых случаях не всё равно.

Это ясно. Я о другом. О том, что вписать больше, чем объявлено, не получается.

> Кхм... Я Long String ещё с D2 помню (правда, смутно). Но
> в D3 точно были.

Подсмотрел. Говорят, в Win32 появились, в D2, то бишь.


 
jack128 ©   (2006-05-06 22:25) [22]

Marser ©   (06.05.06 21:58) [17]
Это вопрос или подначка?


а как же задавалась длина long string"ов тогда??  - это вопрос.
> тоже только в 4ой дельфи появились? - это подначка :-P


 
Marser ©   (2006-05-06 22:28) [23]

> [22] jack128 ©   (06.05.06 22:25)
> Marser ©   (06.05.06 21:58) [17]
> Это вопрос или подначка?
>
> а как же задавалась длина long string"ов тогда??  - это
> вопрос.

Сам не знаю.

> тоже только в 4ой дельфи появились? - это подначка :-P

Я помню, что не было. Я вначале немного ковырялся с D3, потом перешёл на D5. И все талмуды говорят о том же.


 
Джо ©   (2006-05-07 00:37) [24]

> [7] Marser ©   (06.05.06 21:08)
> Сам пробовал? Больно на бред похоже.

Пробовал и неоднократно. Насчет бреда не знаю, это не мне судить.
Насчет смысла, как неплохо товарищи развили, он имеется. Даже для фиксированного и заранее определенного размера данных не помешает иметь возможность изменить его (в меньшую сторону) длину.

Сорри, что приперся в конце паровоза — отсутствовал. Не думал, что мое скромное замечания вызовет столь бурные эмоции с твоей стороны.


 
Джо ©   (2006-05-07 00:38) [25]

> [6] palva ©  

Да, разумеется, уточнение [6] palva существенно, я действительно забыл о приведении.


 
Хозяин   (2006-05-07 00:41) [26]

Не, я эти ааа[x] не очень, есть функции по работе с строками: copy, delete, insert...


 
Marser ©   (2006-05-07 00:43) [27]

> [24] Джо ©   (07.05.06 00:37)

Разве бурные?
Ты лучше объясни, как в Д2 и Д3 существовали длинные строки без SetLength.


 
Marser ©   (2006-05-07 00:45) [28]

> [25] Джо ©   (07.05.06 00:38)
> > [6] palva ©  
>
> Да, разумеется, уточнение [6] palva существенно, я действительно
> забыл о приведении.

Дело в том, что твоё замечание с его уточснением я понял по-своему - якобы можно увеличить размерность короткой строки, заданную при объявлении, что считалд невозможным. Прверил в Делфи и ТР - действительно, невозможно :)
Но без явного задания размерности всё ясно и просто.


 
Джо ©   (2006-05-07 00:51) [29]

> [28] Marser ©   (07.05.06 00:45)
> Дело в том, что твоё замечание с его уточснением я понял
> по-своему - якобы можно увеличить размерность короткой строки,
> заданную при объявлении, что считалд невозможным

Каюсь, спешил, и поэтому в голову как-то не пришло уточнять, что увеличить размер строки такой манипуляцией невозможно (это вроде казалось очевидным, чтобы об этом упоминать). Выходит-таки, что меа кульпа.


 
Marser ©   (2006-05-07 00:58) [30]

> [29] Джо ©   (07.05.06 00:51)
> > [28] Marser ©   (07.05.06 00:45)
> > Дело в том, что твоё замечание с его уточснением я понял
>
> > по-своему - якобы можно увеличить размерность короткой
> строки,
> > заданную при объявлении, что считалд невозможным
>
> Каюсь, спешил, и поэтому в голову как-то не пришло уточнять,
> что увеличить размер строки такой манипуляцией невозможно
> (это вроде казалось очевидным, чтобы об этом упоминать).
> Выходит-таки, что меа кульпа.

Я тоже Фтыкнул :-)


 
DrPass ©   (2006-05-07 01:54) [31]


Marser ©   (07.05.06 00:43) [27]
> Ты лучше объясни, как в Д2 и Д3 существовали длинные строки
> без SetLength

А они существовали с SetLength. Это динамических массивов не было. А длинные строки очень даже неплохо существовали.



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

Текущий архив: 2006.06.04;
Скачать: CL | DM;

Наверх




Память: 0.55 MB
Время: 0.038 c
15-1146829478
fast2
2006-05-05 15:44
2006.06.04
Что такое NetBIOS?


2-1147874048
13
2006-05-17 17:54
2006.06.04
Снова График


15-1146752946
Pazitron_Brain
2006-05-04 18:29
2006.06.04
Почему в России сложился стереотип,


15-1147237100
Ega23
2006-05-10 08:58
2006.06.04
С Днём рождения! 8 мая


15-1147046790
Точка Ру
2006-05-08 04:06
2006.06.04
Есть ли функция удаления всех комментариев?