![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
длинна 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
будет брать...