Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

длинна String


jgu ©   (2002-10-10 23:51:00) 

как объявить переменную типа string чтоб была > 255 симвлов? Если как AnsiString или WideString компилятор все равно ругается что > 255


han_malign   (2002-10-11 10:41:00) [1]

//off topic :^)
var
s: string;
len: DWORD;
begin
if(s="")then len:=0 //pointer(s)=nil
else len:=DWORD(pointer(DWORD(s)-4)^);//s[0]


Dr_Mike   (2002-10-11 10:17:00) [2]

..или описать константу, как типизированную, и не делать лишних присвоений


McSimm   (2002-10-11 09:49:00) [3]

Осмелюсь предположить, что проблема возникает в конструкции вроде

S := "строка длиною больше 255 символов.....";

Если так, то проблема не в описании переменной, а в константе.
Надо разбить ее на подстроки, меньшие 255 символов, объединив их "+".


Dr_Mike   (2002-10-11 04:15:00) [4]

ладно, тут уже большинство мессаг - оффтопик, так что еще и моя одна не испортит общую картину :-))

>Rouse_ © (11.10.02 03:34)
- все дело ведь только в том, для чего эта строка потом будет нужна, и как с ней предполагается работать, а насчет совместимости разных строковых типов и символьных массивов в хелпе немало написано, так что тут особо и сказать нечего да и не нужно...


Rouse_   (2002-10-11 03:34:00) [5]

Оффтопик но:
> var
> MyString: array[0..x] of char;

Не проще будет MyString: String[Размер];

Желаю успехов


Gayrus   (2002-10-11 03:26:00) [6]

var S:String; - Теперь в переменную S можно записать до 2Gb !


ultrasuper_asd   (2002-10-11 00:57:00) [7]

ну вы совсем
хватит над пацаном прикалываться... ну тормознул он.. с кем не бывает...
короче забудь про фиксированные длины строк и пиши всё как ни в чём не бывало... всё проканает... без проблем...


Dmk   (2002-10-11 00:55:00) [8]

:)


Dr_Mike   (2002-10-11 00:53:00) [9]

> Dmk © (11.10.02 00:41)

зачем так страшно ? не проще определить переменную как ShortString, тем более, что вдруг ему понадобится еще и оперировать нулевым байтом ?


ultrasuper_asd   (2002-10-11 00:44:00) [10]

не
я думаю, для него это слишкком сложно... он запарится копаться в этом коде...


Dmk   (2002-10-11 00:41:00) [11]

По умолчанию String приравнивается к AnsiString, и никаких скобок с цифрами писать не надо. Если хочешь использовать ограничение, то пиши так:

var
MyString: array[0..x] of char;
NotMyString: string;

begin
FillChar(MyString,SizeOf(MyString),"X");
NotMyString := MyString;
Caption := NotMyString;
end;


ultrasuper_asd   (2002-10-11 00:22:00) [12]

это директива не влияет на обьявление AnsiString. по крайней мере мне так кажется... просто не надо писать AnsiString[257]...


Dr_Mike   (2002-10-11 00:20:00) [13]

В Делфи тип String уже давно (не помню точно с какой версии - с 2.0, наверное) лишился этого ограничения по длине :-)))
А проблема у тебя скорее всего в том, что где-то в тексте прописана директива компилятора (или указано в настройках параметров компилятора) трактовать все объявления переменных типа String как ShortString - старый до боли знакомый еще с Паскаля тип с ограничением длины в 255 символов.


ultrasuper_asd   (2002-10-11 00:17:00) [14]

странный вопрос...
не надо указывать длину стринга вообще... и он спокойно > 255
будет брать...


Наверх

Титульная страница Поиск, карта сайта Написать письмо