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

Вниз

Оптимизация программы   Найти похожие ветки 

 
4you ©   (2003-05-11 14:10) [0]

Имею небольшой конвертор текстового файла с определённой структурой. При работе с небольшими файлами всё работает отлично, но как только файл больше 20 Kb, комп сразу виснет. В дельфи я мягко говоря не специалист. Сам алгоритм в двух словах такой: читаю из исходного файла данные в одну строку, а затем обращаюсь уже непосредственно к ней (начиная с того момента, с которого нужно). Может как-то по другому надо? Подскажите плиз...


 
DVM ©   (2003-05-11 14:15) [1]

Чтобы ответить надо видеть код следующего:

> читаю из исходного файла данные в одну строку

Как читается строка и куда?

> а затем обращаюсь уже непосредственно к ней

вот здесь скорее и виснет, что со строкой делается то?


 
jack128 ©   (2003-05-11 14:20) [2]

кстати "виснет" -это идиома? именно виснет или тормозит?


 
4you ©   (2003-05-11 14:29) [3]

Строка читается в переменную:

AssignFile( Vf1, file1);
AssignFile( Vf2, file2);
Reset( Vf1);
Rewrite( Vf2);
while not EOF(Vf1) do
begin
Read(Vf1,ch);
str_from_file := str_from_file + ch;
line:=line+ch;
end;


Строка имеет некую структуру например:
STUB="District, street";HEADING="People";VALUES("District, street")="Moscow","Riga";VALUES("People")="Vasja Pupkin","Kolja Sidorov";DATA=x x y y;
В процессе работы я складываю HTML, где элементы принадлежащие STUB...VALUES - названия столбиков (в данном случае два "Moscow","Riga"); HEADING...VALUES - название строк (их тоже два "Vasja Pupkin","Kolja Sidorov") и элементы DATA - сами данные.


 
DVM ©   (2003-05-11 14:43) [4]


> 4you ©

В коде, приведенном выше ошибок вроде бы нет.
str_from_file так объявлен: var str_from_file : String; ?
Программа доходит до точки после end; который выше написан?


 
4you ©   (2003-05-11 14:47) [5]

Да переменная str_from_file именно так объявлена, программа же не заканчивается. После следует ещё примерно 200 строк кода. Я не знаю позволено ли выложить такое колличество здесь...?


 
4you ©   (2003-05-11 14:54) [6]

Весь текст программы доступен по адресу:
http://www.zb.lv/~4you/Main.pas


 
Романов Р.В. ©   (2003-05-11 15:35) [7]

4you
На клавиатуре есть очень хорошие кнопки F7 и F8. В Delphi они помогают при отладке. Еще можно расставить точки останова. Учись отлаживать свои программы, пригодится в будущем.


 
4you ©   (2003-05-11 16:56) [8]

2Романов Р.В.
Дак в том то и дело что ошибок нет. Просто я не умею оптимизировать работу своей программы. С маленькими файлами всё ок, а большие конвертируются порядка 10 минут (большие в смысле дольше 30 Kb) :(


 
Переяслов Григорий ©   (2003-05-11 17:03) [9]

Вообще-то текстовые файлы читать лучше, используя
Var
Str : String;
F : TextFile;
. . .

while not EOF(Vf1) do
begin
Readln(Vf1, Str);
end;

И работай со строкой.



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

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

Наверх




Память: 0.49 MB
Время: 0.01 c
1-70280
bvv20
2003-05-08 11:11
2003.05.22
поис и копирование


3-70126
ALI
2003-04-28 19:36
2003.05.22
Как экспортировать БД из MDB формата в GDB формат ?


1-70274
Zelius
2003-05-07 17:17
2003.05.22
Как отлавливать все Exceptionы программы?


4-70573
dv81
2003-03-21 23:37
2003.05.22
Как отобразить стандартное окно поиска Windows ?


14-70502
Snap
2003-05-02 21:53
2003.05.22
Оцените форум.