Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.05.23;
Скачать: CL | DM;

Вниз

Проблема с размером файла более 64К   Найти похожие ветки 

 
Destroyer   (2002-05-13 14:51) [0]

Есть файл ДОС-текста. Счтиываю его в TStringList, преобразую в WIN-текст, затем обрабатываю строки текста, обработанные строки пихаю в Excel. Ну типа конвертора своеобразного...
При файлах размером более 64К все падает...:о(( Пробовал обойтись без TStringList, грузил через файловую переменную, но результат одинаков...ПОМОГИТЕ, ПОЖАЛУЙСТА


 
Song ©   (2002-05-13 14:56) [1]

Испольхуйте TRichEdit, если в 98.
Чтобы TStringList или TMemo был побольше w2k установите.
А через файловую переменную должно получиться. Странно, что не получилось. Напишите как использовали.


 
Destroyer   (2002-05-13 15:05) [2]

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;


 
Destroyer   (2002-05-13 15:06) [3]

ну и закрытие файла ессно


 
Slym   (2002-05-14 06:37) [4]

Ты не думал что строка более 255 символов не бывает?
читай не лайнами, а буферами
и чето не припомню textfile, var f:text; может?
если даже и так то попробуй просто file, и чтение буфером


 
MBo ©   (2002-05-14 07:11) [5]

> 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;


 
Destroyer   (2002-05-14 14:34) [6]

Похоже, что это не связано с TStringList...
Потому что если я гружу в него большой файл, преобразую в виндовый текст, а затем каждую строку этого текста пихаю в первую ячейку соответствующей строки Экселя, не делая разбиения на ячейки, то все нормально. Если же делаю разбиение строки на ячейки, но в Эксель не пихаю, то тоже все ОК. Но вот если делаю разбиение и пихаю в соответствующие ячейки - то все, умирает как Эксель, так и сама прога. Причем зачастую и сами винды...Чего-то страшное делаю...


 
kull ©   (2002-05-14 14:59) [7]

Да TStringList - отличный класс.


> Song © (13.05.02 14:56)
> Испольхуйте TRichEdit, если в 98.
> Чтобы TStringList или TMemo был побольше w2k установите.


объем TStringList не зависит от версии системы, скорее ограничен свободной памятью.

Короче ошибки в первую очередь у себя искать надо...


 
Destroyer   (2002-05-14 15:21) [8]

Хехе, ну понятно, что ошибки-то у меня...
У меня порядка 15 столбцов в экселевской таблице. Соответственно я строку файла бью на 15 частей и пихаю в нужную ячейку. К примеру, пихаю в Эксел только первые 5 частей, остальное отбрасываю - НЕ ГЛЮЧИТ!!! То есть получается, что Экселю не все равно сколько информации в него пихать? Опять же если строки вообще не разбиваю, а пишу в Эксель целиком, то тоже НЕ ГЛЮЧИТ! Не понимаю, зациклился уже второй день на дурацкой проблеме...



Страницы: 1 вся ветка

Текущий архив: 2002.05.23;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.015 c
14-73367
Sergo
2002-04-15 10:47
2002.05.23
Звуковая...


4-73454
АндрейК
2002-03-22 23:15
2002.05.23
API шные функции для работы с БД


1-73307
com6
2002-05-12 08:09
2002.05.23
Как открыть текстовой файл из проги в Delphi в нотепаде


1-73250
dimmu2
2002-05-05 14:39
2002.05.23
dll на c++


6-73340
igmel
2002-03-13 06:49
2002.05.23
Пинг