Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Гуру, помогите с Оперой

11K
05 января 2007 года
zbestr
40 / / 07.04.2006
Собс-но, на http://www.opera.com/docs/fileformats/ описан формат файла dcache4.url

Во-первых, загвоздка в том, что я просто не могу разобраться в какой последовательности, чего и сколько считывать из файла.

А, во вторых, если я пытаюсь просто файл считать, то загрузка при его размере 1,7МБ происходит ОЧЕНЬ долго... в чем трабла?
Цитата:

int handle;
char ch;hex
AnsiString c;
AnsiString tmp;
int count=0;
if ((handle = open("C:\\Program Files\\Opera\\Profile\\cache4\\dcache4.ini", O_RDONLY | O_BINARY, S_IWRITE | S_IREAD))>0)
{
stop =false;
do
{
if (stop) break;
read(handle, &ch, 1);
c = ch;
if (c == "\n")
{
if (tmp.AnsiPos("htm") >= 0)
{
SG1->Cells[0][count] = tmp;
count++;
SG1->RowCount = count;
Application->ProcessMessages();
// suda->Add(tmp);
};
tmp = "";
}
else
{
tmp = tmp+c;
int g = 0;
};

} while (!eof(handle));
}
close(handle);


Идёт загрузка проца на 100% минуты на 2... а ведь должно быть быстро.

257
06 января 2007 года
kosfiz
1.6K / / 18.09.2005
помоему лучше отобразить файл в память, а потом начинать с ним работать и выуживать ту инфу которая тебе нужна, или просто открыть и выборочно читать, то что нужно, а не весь файл читать - это вроде не нужно, хотя...
11K
06 января 2007 года
zbestr
40 / / 07.04.2006
в смысле в буфер запихать???
так я его через LoadFromFile вообще не могу загрузить почему-то... приходится извращаться... и почему Билдер так долго файл читает?
А по поводу формата данных - не разобрался??? может поможешь, у меня после праздников башка в инглише вообще путается, а тут решил прогру для просмотра кэша Оперы сделать (чего нашел в сети - не пашет нормально с 9-кой да и хоца самому и функций по-больше) и понеслась...
11K
06 января 2007 года
zbestr
40 / / 07.04.2006
Цитата: kosfiz
помоему лучше отобразить файл в память, а потом начинать с ним работать и выуживать ту инфу которая тебе нужна, или просто открыть и выборочно читать, то что нужно, а не весь файл читать - это вроде не нужно, хотя...


вот я и прошу помощи с разбором формата этого dcache4.url ...
знать бы хоть структуру и с тэгами разобраться...
а дальше я сам разберусь...

257
06 января 2007 года
kosfiz
1.6K / / 18.09.2005
а че большой такой? у меня он 1Кб(dcache4.url). тебе чтобы разобраться нужно HEX-редактор типа HiEW в нем открой и глянь - там просто все.
11K
06 января 2007 года
zbestr
40 / / 07.04.2006
C:\Program Files\Opera\Profile\cache4\dcache4.url (в первом посте ini - это я копию читал пока в нете лазил)
257
06 января 2007 года
kosfiz
1.6K / / 18.09.2005
ниче это на твои планы не повлияет бери либо hiew либо far и вперед смотреть файлик. это единственный способ нормально с форматом файла разобраться и допонять, что непонятно.
11K
06 января 2007 года
zbestr
40 / / 07.04.2006
Для кого просто, а для кого... я вот лично только квадраты вижу с сылками, причём там реально есть какой-то формат структур тэгов...
а по ссылке тама чего-то написано, а вот как выплыть из него?
257
06 января 2007 года
kosfiz
1.6K / / 18.09.2005
в hex режим перейди.
11K
06 января 2007 года
zbestr
40 / / 07.04.2006
уважаемый kosfiz
я просил помочь разобраться с описанием по ссылке в 1 посте. всё что вы мне посоветовали я сделал в первую очередь, а потом ужо сюда вопрос написал.
если не можете помочь разобраться с этим так и скажите и не надо меня посылать в hex тама уже был.
лучше посмотрите ссылочку и скажите хоть чего-нибудь по этому вопросу.
309
06 января 2007 года
el scorpio
1.1K / / 19.09.2006
Цитата:
open("C:\\Program Files\\Opera\\Profile\\cache4\\dcache4.ini"


А разве класс TIniFile уже не рулит?

11K
06 января 2007 года
zbestr
40 / / 07.04.2006
очередной раз убеждаюсь, что в суть проблемы вообще никто не собирается вникать... в посте выше я написал про ini-файл - я просто dcache4.url переименовал в dcache4.ini и открывал его, т.к. Опера при работе сней ипользует dcache4.url и мне не хотелось ей мешать.
А в самом файлике находятся структуры с тэгами и они описаны на сайте Оперы по ссылке: http://www.opera.com/docs/fileformats/ - вот здесь-то для меня загадка и кроется, я не могу разобраться в данном описании формата.... а именно: названия тегов, их тип, длина, порядок и количество.
а вторая проблема в том, что файл размером чуть меньше 2МБ читается от 2 и более минут. Уважаемый kosfiz правильно подметил, что нужно читать в каком-то порядке и тогда скорость должна быть амного быстрее - вот и собственно сабж - структура файла!
1
07 января 2007 года
kot_
7.3K / / 20.01.2000
Цитата: zbestr
очередной раз убеждаюсь, что в суть проблемы вообще никто не собирается вникать... в посте выше я написал про ini-файл - я просто dcache4.url переименовал в dcache4.ini и открывал его, т.к. Опера при работе сней ипользует dcache4.url и мне не хотелось ей мешать.
А в самом файлике находятся структуры с тэгами и они описаны на сайте Оперы по ссылке: http://www.opera.com/docs/fileformats/ - вот здесь-то для меня загадка и кроется, я не могу разобраться в данном описании формата.... а именно: названия тегов, их тип, длина, порядок и количество.
а вторая проблема в том, что файл размером чуть меньше 2МБ читается от 2 и более минут. Уважаемый kosfiz правильно подметил, что нужно читать в каком-то порядке и тогда скорость должна быть амного быстрее - вот и собственно сабж - структура файла!


В очередной раз объясняю - здесь не форум переводчиков. Здесь не толкование документации. Здесь задаются КОНКРЕТНЫЕ вопросы по программированию - и на них - при заинтересованности общественности - даются ответы.
Поэтому - если вы не в состоянии понять в какой последовательности и как читать из файла - есть только один вариант - обратитьсь непосредственно к разработчикам - разъяснят.
По второму вопросу - такое кол-во проверок в цикле затормозит кого угодно. Для начала вычитаете весь (или необходимый фрагмент) файл, а затем уж проводите необходимые проверки. При этом лучше использовать классы с буферизацией ввода-вывода.

11K
07 января 2007 года
zbestr
40 / / 07.04.2006
Цитата: kot_
В очередной раз объясняю - здесь не форум переводчиков. Здесь не толкование документации. Здесь задаются КОНКРЕТНЫЕ вопросы по программированию - и на них - при заинтересованности общественности - даются ответы.
Поэтому - если вы не в состоянии понять в какой последовательности и как читать из файла - есть только один вариант - обратитьсь непосредственно к разработчикам - разъяснят.
По второму вопросу - такое кол-во проверок в цикле затормозит кого угодно. Для начала вычитаете весь (или необходимый фрагмент) файл, а затем уж проводите необходимые проверки. При этом лучше использовать классы с буферизацией ввода-вывода.


1. был приведен код и никто толком не сказал, почему же файл размером 2 мега так долго обрабатывается
2. я в состоянии, но там свои типы данных и не понятно со структурой - хоть намек дали бы...
3. какое количество? Два if`а??? затормозят так сильно?
4. а если мне нужно последовательно весь файл читать? от начала и до конца? и почему тогда LoadFromFile не работает???
5. а можно примерчик класса или направление где его искать

1
07 января 2007 года
kot_
7.3K / / 20.01.2000
ИМХО (ты уж извини - во первых ставить Оперу и пытаться воспроизвести условия выполнения - как сам понимаешь достаточно геморойно, поэтому код проверю в понедельник попытавшись так же прочесть какой либо бинарник ) - чтение тормозится из-за а. Медленного чтения (и последующей проверки) - я бы попробовал читать массив символов и обрабатывать его (опять же ИМХО). б) Использования open вместо ifstream. По крайней мере я не вижу в этом никакой необходимости.
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог