Форум: "Прочее";
Текущий архив: 2006.06.04;
Скачать: [xml.tar.bz2];
Вниз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;
Скачать: [xml.tar.bz2];
Память: 0.52 MB
Время: 0.044 c