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

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

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

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 27.12.2009, 02:41   #1
grater83
Пользователь
 
Регистрация: 09.09.2009
Сообщений: 31
По умолчанию запись в файл

как записать в текстовый файл строку больше 255 символов
grater83 вне форума Ответить с цитированием
Старый 27.12.2009, 08:58   #2
Necro
Пользователь
 
Аватар для Necro
 
Регистрация: 27.02.2007
Сообщений: 22
По умолчанию

попробуй читать и писать ее кусками
Necro вне форума Ответить с цитированием
Старый 27.12.2009, 09:03   #3
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

на Delphi ???!!!! а в чём проблема то?!

Код:
var s : AnsiString; 
(*если не баловались опциями компилятора, 
то это то же самое, что и 
var s : String; 
- почитайте в хелпе Дельфи про типы ShortString, AnsiString и String *)
 f : TextFile;
 i : Integer;
begin
   AssignFile(f,'TestLong.txt');
   Rewrite(f);
   {сделаем строку из 100000 тысяч звёздочек!}
   s := '';
   for i:=1 to 100000 do
     s:=s + '*';
   Writeln(f,s);
   CloseFile(f);
end;
Serge_Bliznykov вне форума Ответить с цитированием
Старый 27.12.2009, 12:21   #4
Marsel737
Форумчанин
 
Аватар для Marsel737
 
Регистрация: 09.11.2009
Сообщений: 669
По умолчанию

Код:
procedure TForm1.Button1Click(Sender: TObject);
var 
  s : AnsiString;
  f : TextFile;
begin
   AssignFile(f,'TestLong.txt');
   Rewrite(f);
   {строка из 1000 символов}
   s := '0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789'
        +'0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789'
        +'0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789'
        +'0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789'
        +'0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789'
        +'0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789'
        +'0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789'
        +'0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789'
        +'0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789'
        +'0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789';
   Writeln(f,s);
   CloseFile(f);
end;
Я не всегда знаю, о чем говорю, но знаю, что прав. © Мухаммед Али.
К чёрту обстоятельства. Я создаю возможности. © Брюс Ли

Последний раз редактировалось Marsel737; 27.12.2009 в 12:41.
Marsel737 вне форума Ответить с цитированием
Старый 27.12.2009, 12:39   #5
grater83
Пользователь
 
Регистрация: 09.09.2009
Сообщений: 31
По умолчанию

"*если не баловались опциями компилятора"

вот именно проблема в этом опциями небаловался ,но делфи ругается на строку ,что в ней больше 255 символов как исправить это.
grater83 вне форума Ответить с цитированием
Старый 27.12.2009, 14:07   #6
postal2
Форумчанин
 
Аватар для postal2
 
Регистрация: 31.10.2008
Сообщений: 215
По умолчанию

Вообще всё должно идеально работать, так как

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


Попробуй поставить не ansistring, а просто string (что тоже самое) или widestring

Где конкретно ругается?
[Ferox]
postal2 вне форума Ответить с цитированием
Старый 27.12.2009, 14:10   #7
Alex Cones
Trust no one.
Старожил
 
Аватар для Alex Cones
 
Регистрация: 07.04.2009
Сообщений: 6,526
По умолчанию

Может попробуете показать нам свой код? Может проблема не столько в записи, сколько в том, как вы задаёте строку.
SQUARY PROJECT - НАБОР БЕСПЛАТНЫХ ПРОГРАММ ДЛЯ РАБОЧЕГО СТОЛА.
МОЙ БЛОГ
GRAY FUR FRAMEWORK - УДОБНАЯ И БЫСТРАЯ РАЗРАБОТКА WINAPI ПРИЛОЖЕНИЙ
Alex Cones вне форума Ответить с цитированием
Старый 27.12.2009, 14:14   #8
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Сообщение от grater83
вот именно проблема в этом опциями небаловался ,но делфи ругается на строку ,что в ней больше 255 символов как исправить это.
Хелп, значит, читать не хотим.. ;(
ну да ладно..
за то, как Дельфийский компилятор определяет переменную типа стринг отвечает опция {$H+}

Цитата:
creates a variable S that holds a string. In the default {$H+} state, the compiler interprets string (when it appears without a bracketed number after it) as AnsiString. Use the {$H–} directive to turn string into ShortString.
либо зайдите меню - "Project" - "Options" - закладка "Complier" и поставьте галочку напротив:
[ ] Huge strings


____________________________
добавлено

Alex Cones, согласен. Возможно (и скорее всего!), что проблема в том, где и как эта строка описана и/или присваивается/используется/передаётся!!

Последний раз редактировалось Serge_Bliznykov; 27.12.2009 в 14:20.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 27.12.2009, 14:31   #9
grater83
Пользователь
 
Регистрация: 09.09.2009
Сообщений: 31
По умолчанию

все как всегда ни разу неделал большую стоку и вот результат
AssignFile(а, 'c:.......');
Rewrite(а);
writeln(f,'и 1000 символов');
CloseFile(f)
ругается на string literals may have at most 255 elements
grater83 вне форума Ответить с цитированием
Старый 27.12.2009, 14:33   #10
grater83
Пользователь
 
Регистрация: 09.09.2009
Сообщений: 31
По умолчанию

"Project" - "Options" - закладка "Complier" и поставьте галочку напротив:
[ ] Huge strings

стоит галочка
grater83 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Запись в файл. Baaandit Общие вопросы Delphi 4 27.11.2009 16:49
Запись в файл soonner Общие вопросы Delphi 5 21.03.2009 01:12
Запись в файл Titan123 Общие вопросы Delphi 6 23.08.2008 01:12
Запись в файл С++ Viteks Общие вопросы C/C++ 3 18.04.2008 13:18
запись в файл Prisian Общие вопросы Delphi 6 24.07.2007 13:43