Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 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.059 c
1-1146061673
Unnamed Player
2006-04-26 18:27
2006.06.04
ScrollBy


2-1146931088
Mr tray
2006-05-06 19:58
2006.06.04
Убрать application с таскбара насовсем


2-1147697774
ЧиЧиЧи
2006-05-15 16:56
2006.06.04
Работа с изображениеями


2-1147846635
novice
2006-05-17 10:17
2006.06.04
Как закрыть приложение на удаленном компьютере?


4-1141895510
msg
2006-03-09 12:11
2006.06.04
GetMessage в отдельном потоке





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