Форум: "Основная";
Текущий архив: 2003.05.22;
Скачать: [xml.tar.bz2];
ВнизОптимизация программы Найти похожие ветки
← →
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;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.007 c