Другие языки программирования и технологии

паскаль. нужно считать строку длинной 100 000 символов. тип string до 255. кокой тип подойдет в этом случае???

Voronin Sergey
Voronin Sergey
287
В какой реализации Паскаля? В 32-битной можно в массив char. В расширенных версиях Pascal, вроде Delphi, можно иметь строки хоть в миллиард символов. В антикварной 16-битной реализации вроде Turbo Pascal можно работать прямо с файлом, хотя это, конечно, намного медленнее.
Арсен Буфан
Арсен Буфан
89 831
Лучший ответ
Turbo Pascal — ограничение на переменные 64 Kb!
Напрямую такую кучу хранить нельзя.
Можно воспользоваться списком строк…
К примеру:

type sSpis = ^rSpis;
rSpis = record
S : String;
Next : sSpis;
end;

var
First, Cur, Last : sSpis;
S : String;
B : record L : Byte; B : array [1..255] of Byte; end absolute S;
F : File;
Size : Integer;

begin
First := nil;
Assign(F, 'myFile');
Reset(F,1);
while Not EOF(F) do begin
BlockRead(F, B.B, 255, Size); B.L := Size;
New(Cur); Cur^.S := S; Cur^.Next := nil;
if First = nil then First := Cur else Last^.Next := Cur; Last := Cur;
end; Close(F);

{ Выводим на экран }
Cur := First; while Cur <> nil do begin Write(Cur^.S); Cur := Cur^.Next; end; WriteLn;
end.

Запустил в TP под DOSBox данный код.
Без проблем вывел файл размером 441152 байт!
Рудик Hooligan
Рудик Hooligan
80 028
Либо массив строк, либо всю строку в массив символов.
А по-другому никак.
обычно в подобных задачах не нужно хранить всю строку. нужно считывать посимвольно и обрабатывать по ходу
ВЮ
Виктор Юн
4 830

Похожие вопросы