Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Вопросы по компонентам для Delphi, C++ Builder 2

Модерирует : ShIvADeSt

ShIvADeSt (20-06-2007 07:33): http://forum.ru-board.com/topic.cgi?forum=33&topic=8529  Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106

   

jonikDk



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
Быстро читать файлы может TFileStream... но еще быстрее их можно читать, если использовать фишку мс Mapped File... нота в msdn называется "Managing Memory-Mapped Files in Win32"  
или задай гуглю вопрос: delphi CreateFileMapping  
В принципе могу выложить и нашу наработку готовым классом... но его еще надо найти )

 
Прочитал про Mapped File - буду пробовать. Скорость действительно важна. Можно и наработку если найдешь интересно посмотреть и сравнить будет

Всего записей: 1605 | Зарегистр. 01-03-2004 | Отправлено: 08:10 02-02-2007
SERGE_BLIZNUK

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
jonikDk
как сказал Alto
Цитата:
Быстро читать файлы может TFileStream...  

Поддерживаю...
Кстати, рекомендую, для начала начать с простого
var
  TS :TStringList;
TS :=TStringList.Create();
TS.LoadFromFile('MyBigFile.TXT');
пишу прямо здесь - поэтому код приблизительный... ;-))))))
если скорость устроит - то можно и не извращаться... ;-)
 
и ещё - посмотрите в сторону "Turbo Power Orpheus" - там есть пример FileView до 2 Гиг - очень быстрый!
 

Всего записей: 2014 | Зарегистр. 12-09-2002 | Отправлено: 11:10 02-02-2007
Vitus_Bering



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
jonikDk
SERGE_BLIZNUK
 

Цитата:
Кстати, рекомендую, для начала начать с простого  
var  
  TS :TStringList;  
TS :=TStringList.Create();  
TS.LoadFromFile(\'MyBigFile.TXT\');

 
Вместо TStringList лучше использовать THashedStringList,  
значимо ускоряет процесс.
Не забудь включить в uses iniFiles.  
 

Всего записей: 936 | Зарегистр. 30-09-2005 | Отправлено: 11:34 02-02-2007
Shaman2

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
var  
  TS :TStringList;  
TS :=TStringList.Create();  
TS.LoadFromFile('MyBigFile.TXT');  

 
У меня на дельфи 6.02 из-за LoadFromFile и SaveFromfile были глюки. Почему-то не полностью закачивался или записывался файл, но не всегда ,а время от времени. Проект использовался для синхронизации, в итоге данные после синхронизации были часто не верны. После перезаписи на AssignFile, readln и т.д. (т.е. старый добрый способ работы с файлами) уже пару месяцев как все работает на ура

Всего записей: 358 | Зарегистр. 18-07-2003 | Отправлено: 14:09 02-02-2007
jonikDk



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
пока планирую THashedStringList - если все устроит то на том и остановлюсь, если нет буду дальше пробовать ...
 

Цитата:
После перезаписи на AssignFile, readln и т.д. (т.е. старый добрый способ работы с файлами) уже пару месяцев как все работает на ура

 
Интересно сколько времени занимает разбор текстового файла размером 50 Мб ??

Всего записей: 1605 | Зарегистр. 01-03-2004 | Отправлено: 16:56 02-02-2007
Shaman2

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Понятия не имею, доходило до 25Мб, довольно быстро все перебиралось. Зато очень надежно и без глюков. Всеравно запись в базу этих данных займет какое-то время, так что работа с файлом по времени это ничто

Всего записей: 358 | Зарегистр. 18-07-2003 | Отправлено: 21:38 02-02-2007
SERGE_BLIZNUK

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Vitus_Bering
Цитата:
Вместо TStringList лучше использовать THashedStringList,  
подозреваю, что это появилось в новых Дельфях? (в Delphi5 я такого не нашёл... ) или это из какого компонента/библиотеки?
 
jonikDk
Shaman2
я когда-то для себя делал программку простейшую, которая просто читала заданный файл и в мемо кидала время, потраченное на чтение. У меня сравнивались методы чтения через TFileStream.read, Построчно (через read/readln)  и через TStringList.LoadFromFile... могу выложить - а ещё проще написать такое самому и проверить (кстати, думаю, что если вы выложите свои результаты в студию - то это многим будет интересно.)
 
 
 
Добавлено:
нашел ответ про THashedStringList в JEDI в одном из модулей
  {$IFNDEF COMPILER6_UP}
  THashedStringList = class(TStringList);
т.е. скорее всего, начиная с Delphi 6 появилось...

Всего записей: 2014 | Зарегистр. 12-09-2002 | Отправлено: 08:51 03-02-2007
Alto



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Господа... к чему опять флейм на целую страницу... код:
 
procedure TStrings.LoadFromFile(const FileName: string);
var
  Stream: TStream;
begin
  Stream := TFileStream.Create(FileName, fmOpenRead or fmShareDenyWrite);
  try
    LoadFromStream(Stream);
  finally
    Stream.Free;
  end;
end;
 
Иерархия:
TStringList = class(TStrings)
THashedStringList = class(TStringList)
 
Человеку, использующему ассигнфайл в 21 веке... когда космические корабли бороздят просторы вселенное мой субботний привет ))
Код класса TMappedFile нашел... уберу лишнее и выложу до понедельника... если время вечером будет

Всего записей: 388 | Зарегистр. 20-03-2003 | Отправлено: 13:39 03-02-2007
SERGE_BLIZNUK

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Amba911

Цитата:
появилась у меня такая проблемка, есть DBFник который выгружается с некого софта, и вот при выгрузке в поле KOD записывается числовое значение и если оно меньше 8 символов, то спереди добавляются нули (к примеру: 00123456,00009876). Надо избавится от этих нулей

переносим обсуждение сюда (вопрос был Вопросы по Delphi
 
Вариантов замены -очень много.  поиск Вам поможет.
Например, вот, кое-что:
  • попробовать обработку через ADO (например, Microsoft OLE DB Provider for Visual FoxPro )
  • TDBF (Free, tDBF component for Delphi and BCB)
  • VK DBF (Free, http://vlad-karpov.narod.ru/Components.html)
  • Apollo (коммерческий, в обменнике есть Apollo_VCL6.1)
  • Halcyon (коммерческий)
  • Advantage Database Server (коммерческий)
     
    Есть определённые нюансы в использовании. Например, есть ли у вас к вашему DBF индексный файл - если да - то какой? Мемо поля? Тип поля KOD ? Какой формат у DBF файла (первые два байта - в hex чему равны?)
    И, наконец, структура DBF файла описана и очень проста (фактически это текстовая таблица фиксированной ширины с заголовком). Можно (и не сложно) написать программу прямого доступа к файлу. (проблема - опять же индексы могу стать на пути...)
    Удачи.
     
     
     

  • Всего записей: 2014 | Зарегистр. 12-09-2002 | Отправлено: 10:35 04-02-2007
    vidic777



    Advanced Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    Поставил сегодня TMS 4.2 из копилки под BDS2006 C++10. Была такая трабла:
    При использовании компонента TDBAdvGrid компилятор ругается на файл "advgdip.hpp" строка 92
      typedef CombineMode TCombineMode;
    Ошибка:
     , expected (E2257)
    A comma was expected in a list of declarations, initializations, or parameters.
    This problem is often caused by a missing syntax element earlier in the
    file or one of its included headers.  
     
    Решил добавлением запятой в этой строке:
     typedef CombineMode, TCombineMode;
     
    При закоментаривании строки апликуха тоже билдится без проблем.  
    А посему решил запостить как решал траблу - может кому и пригодится.  
     
    Еще раз хочу выразить огромнное спасибо clear2121.

    Всего записей: 1313 | Зарегистр. 16-02-2005 | Отправлено: 23:56 04-02-2007
    djdtyfhu



    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    vidic777

    Цитата:
    Поставил сегодня TMS 4.2 из копилки под BDS2006 C++10

     
    Что за копилка такая?

    Всего записей: 422 | Зарегистр. 28-12-2004 | Отправлено: 17:30 05-02-2007
    RomanTim

    Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    djdtyfhu
    Читай ветку в варезнике
    http://forum.ru-board.com/topic.cgi?forum=35&topic=32815  
     
    и в частности про обменник (копилку) http://forum.ru-board.com/topic.cgi?forum=35&topic=30992&start=0&limit=1&m=2#1

    Всего записей: 375 | Зарегистр. 11-09-2003 | Отправлено: 23:32 05-02-2007
    djdtyfhu



    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    RomanTim

    Цитата:
    Читай ветку в варезнике  

     
    Про это-то я знаю, просто там все вроде это называют обменником, вот меня и смутила копилка

    Всего записей: 422 | Зарегистр. 28-12-2004 | Отправлено: 04:59 06-02-2007
    whitewolfs

    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    подскажите, плз, как установить Avantage TDataset Descendant 8.1 на BDS2006? Если было раньше - не пинайте, дайте ссылочку, сам всю ветку просмотреть не могу - захожу счас с телефона.

    Всего записей: 300 | Зарегистр. 21-10-2005 | Отправлено: 05:26 06-02-2007 | Исправлено: whitewolfs, 05:28 06-02-2007
    jonikDk



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    whitewolfs

    Цитата:
    Avantage TDataset Descendant 8.1
    А где взял ?? У тебя с исходниками или нет ??
     

    Всего записей: 1605 | Зарегистр. 01-03-2004 | Отправлено: 09:28 06-02-2007
    whitewolfs

    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    jonikDk так он же свободно раздается вроде.
    www.hotsoft.ru

    Всего записей: 300 | Зарегистр. 21-10-2005 | Отправлено: 09:37 06-02-2007
    Vladimir_Pashutin

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Свободно только демо-версия

    Всего записей: 70 | Зарегистр. 14-05-2003 | Отправлено: 10:51 06-02-2007
    whitewolfs

    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Vladimir_Pashutin ниче не пойму. я на восьмерке под дельфи7 больше года работаю. это сам адс сервер платный, а компоненты доступа бесплатные (и локальный сервер кстати тоже). так как установить его?

    Всего записей: 300 | Зарегистр. 21-10-2005 | Отправлено: 11:10 06-02-2007
    Vladimir_Pashutin

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    whitewolfs
    Извиняй, но тут я полный ноль, просто зашёл ради любопытства по указанной ссылке и не обнаружил ничего бесплатного, вот и высказался.

    Всего записей: 70 | Зарегистр. 14-05-2003 | Отправлено: 12:23 06-02-2007
    Mikhail66

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Подскажите новичку, какой компонент использовать вместо TStringGrig, чтобы в ячейку можно было поместить, например 'знак сигмы' S, подстрочные индексы и т.д.

    Всего записей: 1 | Зарегистр. 23-01-2007 | Отправлено: 13:13 06-02-2007
       

    Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106

    Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Вопросы по компонентам для Delphi, C++ Builder 2
    ShIvADeSt (20-06-2007 07:33): http://forum.ru-board.com/topic.cgi?forum=33&topic=8529


    Реклама на форуме Ru.Board.

    Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
    Modified by Ru.B0ard
    © Ru.B0ard 2000-2024

    BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

    Рейтинг.ru