Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 01.11.2011, 08:17   #11
Хамяг
Форумчанин
 
Аватар для Хамяг
 
Регистрация: 22.08.2008
Сообщений: 105
По умолчанию

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

впрочем, если нужна именно строка, то вот, пожалуйста:

Код:
var
  s: String;
  i: Cardinal;
begin
  s:='';
  for i:=0 to 1073741823 do s:=s+'1';
end.
Хамяг вне форума Ответить с цитированием
Старый 01.11.2011, 08:51   #12
Johnson
кривокодер ;)
Форумчанин
 
Аватар для Johnson
 
Регистрация: 20.06.2008
Сообщений: 707
По умолчанию

А Вы хотя бы представляете почему именно такая ситуация выдаст ошибку?
Не потому, что размер строки ограничен. А потому, что винда не выделит памяти больше для программы.
"А как написать праграму?, "ришыти задачьку очинь нада" ©с форума. Жить становится интереснее, жить становится веселее...
{Быть или не быть} {Неуспешный суицид}
Johnson вне форума Ответить с цитированием
Старый 01.11.2011, 09:18   #13
Хамяг
Форумчанин
 
Аватар для Хамяг
 
Регистрация: 22.08.2008
Сообщений: 105
По умолчанию

я понимаю. только из этого как раз следует, что размер строки ограничен.
Хамяг вне форума Ответить с цитированием
Старый 01.11.2011, 09:23   #14
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Сообщение от Johnson
Не потому, что размер строки ограничен.
как раз таки ограничен.
Вы в документацию не пробовали заглядывать. Очень полезно!

Цитата:
Код:
About String Types
A string represents a sequence of characters. Delphi supports the following predefined string types.  

String types  

Type   Maximum length   Memory required   Used for   
ShortString   255 characters   2 to 256 bytes   backward compatibility   
AnsiString   ~2^31 characters   4 bytes to 2GB   8-bit (ANSI) characters, DBCS ANSI, MBCS ANSI, etc.   
WideString   ~2^30 characters   4 bytes to 2GB   Unicode characters; multi-user servers and multi-language applications
Serge_Bliznykov вне форума Ответить с цитированием
Старый 01.11.2011, 10:01   #15
Johnson
кривокодер ;)
Форумчанин
 
Аватар для Johnson
 
Регистрация: 20.06.2008
Сообщений: 707
По умолчанию

Хм. Не знал. Но, не будем углубляться в теорикрафт... Сомневаюсь, что найдется задача, в которой потребуется составить такую строку.
"А как написать праграму?, "ришыти задачьку очинь нада" ©с форума. Жить становится интереснее, жить становится веселее...
{Быть или не быть} {Неуспешный суицид}
Johnson вне форума Ответить с цитированием
Старый 01.11.2011, 10:03   #16
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

Цитата:
как раз таки ограничен.
Сергей, по сути говоря, он и ограничен изза памяти(исключение ShortString, но там ограничение вызвано самим типом данных)
хотя может еще ограничение изза того что длина строки в LongInt хранится
хотя если учесть 2ГБ на процесс, то оно и так ясно.

интересно, а что в XE2 со строками?
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.

Последний раз редактировалось Пепел Феникса; 01.11.2011 в 10:06.
Пепел Феникса вне форума Ответить с цитированием
Старый 01.11.2011, 10:05   #17
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

4 байта используется для указания длины строки, с этим и связано ограничение, 2Гб = max положительного Integer
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 01.11.2011, 13:23   #18
impulsgraw
Верховный Судья
Пользователь
 
Аватар для impulsgraw
 
Регистрация: 23.11.2010
Сообщений: 82
По умолчанию

Да ладно вам, я уже решил эту проблему))
Просто написал процедурку

Код:
procedure addDod(s:string);
dod := dod + s + #13#10;
impulsgraw вне форума Ответить с цитированием
Старый 01.11.2011, 13:26   #19
impulsgraw
Верховный Судья
Пользователь
 
Аватар для impulsgraw
 
Регистрация: 23.11.2010
Сообщений: 82
По умолчанию

И вообще, дело не в длине строки, а в том, что он меня требует закрыть (закончить) строку на той же линии, где я её и начал.

Код:
Unterminated string - не законченная строка.
impulsgraw вне форума Ответить с цитированием
Старый 01.11.2011, 13:30   #20
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

Цитата:
И вообще, дело не в длине строки, а в том, что он меня требует закрыть (закончить) строку на той же линии, где я её и начал.
все правильно, Делфи не поддерживает многострочные(в коде) константы.
http://programmersforum.ru/showpost....35&postcount=7
вот кстати и решение. поидее это будет сложено на этапе компиляции(потому ради константы не стоит функцию использовать)
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Длинная арифметика. Steam.dll Помощь студентам 8 03.04.2011 17:47
Длинная строка файла MafoR Помощь студентам 2 26.01.2010 15:12
Длинная арифметика Indira Общие вопросы C/C++ 2 24.01.2010 10:28
Строка состаяния или загрузачная строка Sergeu Мультимедиа в Delphi 8 27.08.2008 10:32
Длинная арифметика DmT Помощь студентам 2 06.10.2007 22:43