![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Проблема с размером файла более 64К [D5, Win95/98]
Destroyer © (2002-05-13 14:51:00)Есть файл ДОС-текста. Счтиываю его в TStringList, преобразую в WIN-текст, затем обрабатываю строки текста, обработанные строки пихаю в Excel. Ну типа конвертора своеобразного...
При файлах размером более 64К все падает...:о(( Пробовал обойтись без TStringList, грузил через файловую переменную, но результат одинаков...ПОМОГИТЕ, ПОЖАЛУЙСТА
Destroyer (2002-05-14 15:21:00) [1]Хехе, ну понятно, что ошибки-то у меня...
У меня порядка 15 столбцов в экселевской таблице. Соответственно я строку файла бью на 15 частей и пихаю в нужную ячейку. К примеру, пихаю в Эксел только первые 5 частей, остальное отбрасываю - НЕ ГЛЮЧИТ!!! То есть получается, что Экселю не все равно сколько информации в него пихать? Опять же если строки вообще не разбиваю, а пишу в Эксель целиком, то тоже НЕ ГЛЮЧИТ! Не понимаю, зациклился уже второй день на дурацкой проблеме...
kull (2002-05-14 14:59:00) [2]Да TStringList - отличный класс.
> Song © (13.05.02 14:56)
> Испольхуйте TRichEdit, если в 98.
> Чтобы TStringList или TMemo был побольше w2k установите.
объем TStringList не зависит от версии системы, скорее ограничен свободной памятью.
Короче ошибки в первую очередь у себя искать надо...
Destroyer (2002-05-14 14:34:00) [3]Похоже, что это не связано с TStringList...
Потому что если я гружу в него большой файл, преобразую в виндовый текст, а затем каждую строку этого текста пихаю в первую ячейку соответствующей строки Экселя, не делая разбиения на ячейки, то все нормально. Если же делаю разбиение строки на ячейки, но в Эксель не пихаю, то тоже все ОК. Но вот если делаю разбиение и пихаю в соответствующие ячейки - то все, умирает как Эксель, так и сама прога. Причем зачастую и сами винды...Чего-то страшное делаю...
MBo (2002-05-14 07:11:00) [4]> Slym (14.05.02 06:37)
> Ты не думал что строка более 255 символов не бывает?
А я верю, что бывают
так у меня работает c большим файлом
procedure TForm1.Button1Click(Sender: TObject);
var i:integer;
sl:tstringlist;
begin
sl:=tstringlist.create;
sl.LoadFromFile("e:\idos.txt");
for i:=0 to sl.count-1 do
if length(sl[i])>0 then
OemToChar(PChar(sl[i]),PChar(sl[i]));
sl.SaveToFile("e:\iwin.txt");
sl.free;
end;
Slym (2002-05-14 06:37:00) [5]Ты не думал что строка более 255 символов не бывает?
читай не лайнами, а буферами
и чето не припомню textfile, var f:text; может?
если даже и так то попробуй просто file, и чтение буфером
Destroyer (2002-05-13 15:06:00) [6]ну и закрытие файла ессно
Destroyer (2002-05-13 15:05:00) [7]var F:TextFile;
CurStr:String;
AssignFile(F,OpenDialog.FileName);
Reset(F);
while not(Eof(F)) do
begin
Readln(F,CurStr);
if not(CurStr="") then
OEMToChar(PChar(CurStr),PChar(CurStr));
Далее собственно обработка строки и заталктвание в Эксель
end;
Song (2002-05-13 14:56:00) [8]Испольхуйте TRichEdit, если в 98.
Чтобы TStringList или TMemo был побольше w2k установите.
А через файловую переменную должно получиться. Странно, что не получилось. Напишите как использовали.