Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 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.006 c
1-70215
Мыш
2003-05-09 08:22
2003.05.22
Сохранить дерево


3-70100
Андрей
2003-04-29 16:13
2003.05.22
База данных сетевой компании


14-70463
Skalp
2003-05-03 14:11
2003.05.22
Посоветуйте книгу, либо ссылку


1-70319
Berzercer
2003-05-08 14:52
2003.05.22
Убрать иконку из Alt+Tab


1-70261
Тот самый Джо
2003-05-12 12:04
2003.05.22
Помогите написать конвертор





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский