Главная страница
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.014 c
4-73443
EAlexander
2002-03-21 16:58
2002.05.23
Синхронизация времени


1-73263
Gnom
2002-05-10 20:34
2002.05.23
CTRL+C и Shift+Ins


1-73264
Talvin
2002-05-07 23:54
2002.05.23
Вопрос по PASCAL!


3-73089
@andrew
2002-04-26 16:29
2002.05.23
Привет Всем!!! Можно ли заблокировать работу триггеров в SQL?


7-73422
Romul
2002-02-27 10:00
2002.05.23
Как выключить/включить модем из под Windows