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

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

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

ShIvADeSt (22-03-2007 02:18): http://forum.ru-board.com/topic.cgi?forum=33&topic=8142  Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 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

   

ShIvADeSt



Moderator
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Продолжение темы http://forum.ru-board.com/topic.cgi?forum=33&topic=3647&start=2020#lt
Внимание, все большие куски кода (более 5 строк) оформляем в тег [more] дабы уменьшить размер поста.

Всего записей: 3956 | Зарегистр. 29-07-2003 | Отправлено: 01:52 20-04-2006 | Исправлено: ShIvADeSt, 02:02 30-06-2006
relictus

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

Цитата:
 в папке DataService - там есть юниты,

Вай, как обидно - а для DBISAM там ничего-то нет!! А именно этот engine используется в проекте... Нет ли у кого доп. модуля к EhLib для DBISAM ?

Цитата:
поставить /*FILTER*/ и Order By в отдельную строку в самое начало

vserd
А можно по-подробнее насчет этого?  

Всего записей: 3714 | Зарегистр. 19-04-2005 | Отправлено: 09:03 01-02-2007
vserd

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
relictus
смотри ответ в http://forum.ru-board.com/topic.cgi?forum=33&topic=1838&start=100#lt
здесь это уже оффтопик.

Всего записей: 2065 | Зарегистр. 08-05-2002 | Отправлено: 10:41 01-02-2007
OOD

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Люди добрые помогите как вывести и отсортировать по времени в memo содержимое 2-х txt файлов?
 
допустим есть 2 файла 1.txt;2.txt Нужно выдернуть их содержимое и вставить в мемо , отсортировать по времени ...
 
содержимое файла 1.txt:
 
30.01.2007 2
01.02.2007 3
 
содержимое файла 2.txt:
 
01.01.1999 1
02.02.2007 4
 
как собрать этих 2 файла и отсортировать строки в файлах  по времени указанном в начале каждой стоки?
 
собираю файлы так :
 
Подробнее...
 
но как теперь отсортировать ...
 
 
 

Всего записей: 3379 | Зарегистр. 20-05-2006 | Отправлено: 23:32 02-02-2007 | Исправлено: OOD, 23:33 02-02-2007
OdesitVadim



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
OOD
ужасно, просто ужасно добавляете второй файл. Ведь есть чудный метод AddStrings, который позволит добавить стоки в мемо с StringList.
А в общем, задача немного у вас не правильно поставлена. Нужно не загрузить, а потом с мемо сортировать, а чуточку наоборот, а именно: грузим в временное хранилище, там сортируем, а потом выводим в мемо. Это дело хорошо на классах сделать, но ...
код
Подробнее...
Код писан без проверки, так что не ручаюсь, что скомпилиться сразу

----------
Press any key to continue or any other key to exit
Пишите так, чтобы не было стыдно за нобелевскую премию.

Всего записей: 1568 | Зарегистр. 19-09-2003 | Отправлено: 23:59 02-02-2007
Amba911

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Здравствуйте.
В общем, появилась у меня такая проблемка, есть DBFник который выгружается с некого софта, и вот при выгрузке в поле KOD записывается числовое значение и если оно меньше 8 символов, то спереди добавляются нули (к примеру: 00123456,00009876). Надо избавится от этих нулей. Я решил эту проблему таким способом:
 
for i:=1 to Table1.RecordCount do
begin
   Table1.Edit;
   k:=Table1.FieldByName('KOD').AsInteger;
   Table1.FieldByName('KOD').AsInteger:=k;
   Table1.Post;
   Table1.Next;  
end;
 
Нули убираются, но есть другая проблема при большом количестве записей обрабатывается очень долго (50 тыс. записей обрабатывает ~10 мин), процессор на 100% загружен, приложение висит, как ускорить процесс или уменьшить нагрузку на процессор, может есть другой способ избавится от нулей.  Заранее огромное спасибо.

Всего записей: 15 | Зарегистр. 03-05-2006 | Отправлено: 22:04 03-02-2007
SERGE_BLIZNUK

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Amba911
не ясно, чем вам так эти нули мешают... ;-)) Ну надо, значит - надо.

Цитата:
или уменьшить нагрузку на процессор
Если скорость обработки не критична, и чтобы приложение не "висело", просто вставьте в цикл:
 application.ProcessMessages;
 
А вот для ускорения работы надо в корне менять принцип доступа к данным. Отказываться от DBE (я лично считаю, что это тупиковая ветвь развития - и кроме проблем BDE ничего не даёт... - на работе целый зоопарк чужого софта, используещего BDE :-(( )
Вариантов замены -очень много. И есть куча нюансов. Но обсуждение их здесь - оффтоп.
Поэтому про замену отвечаю вам в Вопросы по компонентам для Delphi, C++ Builder
удачи.

Всего записей: 2014 | Зарегистр. 12-09-2002 | Отправлено: 10:26 04-02-2007 | Исправлено: SERGE_BLIZNUK, 10:27 04-02-2007
DroN_S

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

Цитата:
я лично считаю, что это тупиковая ветвь развития - и кроме проблем BDE ничего не даёт...  

а вот это ты зря...
я раньше прекрасно работал с BDE и горя не знал...
у меня и сейчас есть продукт, который работает на BDE и с ним работают клиенты..
на счёт скорости обработки данных, естественно, BDE уступает другим СУБД, но использовать TTable в своих приложения - ВОТ ОСНОВНОЙ ТОРМАЗ!!! с любой СУБД нужно работать исключительно на SQL-запросах...

Всего записей: 1143 | Зарегистр. 09-04-2005 | Отправлено: 14:16 04-02-2007
Amba911

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Спасибо огромное проблема решилась отключил DataSource во время отработки цикла время уменьшилось до 30 сек (тоесть из-за отображения происходящего с таблицей на екране уходило так много времени на обработку).
 
application.ProcessMessages; работает отдельное спасибо.

Всего записей: 15 | Зарегистр. 03-05-2006 | Отправлено: 15:57 04-02-2007
OOD

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
люди добрые подскажите проблема такая, нужно удалять из memo строку в случае если эта строка повторяется.... Подскажите как это сделать

Всего записей: 3379 | Зарегистр. 20-05-2006 | Отправлено: 18:36 04-02-2007
Jokerjar



BANNED
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Возможно, самый низкопроизводительный вариант... Короче, делаешь двойной цикл такой:

Код:
for i := 0 to Memo1.Lines.Count - 1
for k := i to Memo1.Lines.Count - 1
...

и сравниваешь i-ую строку (Memo.Lines[i]) с каждой k-ой. Если совпадают, удаляешь k-ую.
 
 
Добавлено:
Блин, но если одинаковых строк в тексте больше двух то скорей всего

Код:
for k := i to Memo1.Lines.Count - 1

придется заменить на

Код:
for k := 0 to Memo1.Lines.Count - 1

Всего записей: 591 | Зарегистр. 22-03-2006 | Отправлено: 18:42 04-02-2007
A_V

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
OOD
 i := 0;
 while i < Memo1.Lines.Count do
 begin
   if Memo1.Lines.IndexOf(Memo1.Lines[i]) < i then
     Memo1.Lines.Delete(i)
   else
     inc(i);
 end;

Всего записей: 770 | Зарегистр. 07-04-2002 | Отправлено: 21:09 04-02-2007
ShamaN



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Как в другой программе в TElTreeView выбрать следующий элемент?

Всего записей: 1297 | Зарегистр. 23-09-2004 | Отправлено: 21:56 04-02-2007
whitewolfs

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

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

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
whitewolfs
Я юзаю компонент FlexCel (у него есть все для работы с xls через OLE или native доступ):
    for i := 2 to FlexCelImport.MaxRow do
      for j := 9 to 12 do  // columns I,J,K,L from Excel
        SG.Cells[i-2, j-9] := FlexCelImport.CellValue[i, j];

Всего записей: 3714 | Зарегистр. 19-04-2005 | Отправлено: 10:02 07-02-2007 | Исправлено: relictus, 10:03 07-02-2007
ShIvADeSt



Moderator
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
whitewolfs
никак, в любом случае надо будет запускать ексель (правда не обязательно его отображать).

----------
И создал Бог женщину... Существо получилось злобное, но забавное...

Всего записей: 3956 | Зарегистр. 29-07-2003 | Отправлено: 10:06 07-02-2007
Vitus_Bering



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
whitewolfs
TXLSFile
_http://sm-software.com/pxlsfile.htm
Очень полезная библиотека, работает напрямую с экселевским файлом.
В копилке должна быть.  

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

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Всем сенксза оперативные ответы! Счас буду пробовать. А еще нарыл про компонент F1book, - вроде тоже для работы с файлом напрямую. Кто нибудь пробовал его?

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



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

Цитата:
в любом случае надо будет запускать ексель

Не надо запускать Ексель, более того, библиотека TXLSFile вообще не требует
установленного Екселя.

Всего записей: 936 | Зарегистр. 30-09-2005 | Отправлено: 12:04 07-02-2007
RostY



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
whitewolfs
F1Book пробовал когда-то. Но это ActiveX, так что с программой придется и его таскать. Тот Ф1бук, что идет с дельфой - старый и читает файлы только 95-го екселя. Если очень нужно, могу поделиться новым (вер. 6.1) с поддержкой новых фоматов.

Всего записей: 387 | Зарегистр. 11-01-2006 | Отправлено: 12:49 07-02-2007
Aaz68

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Здравствуйте, проблема такая: установил у себя Delphi10 lite SP2, при попытке запустить какой-либо проект выдает ошибку "[Pascal Fatal Error] Project1.dpr(1): F1027 Unit not found: 'System.pas' or binary equivalents (.dcu)", даже если просто создал пустую форму. Дал дистрибутив приятелю, на его машине такая же байда. Дельфю качал отсюда: http://forum.ru-board.com/topic.cgi?forum=35&topic=30400#1. У кого- нибудь было такое?

Всего записей: 5 | Зарегистр. 29-11-2006 | Отправлено: 12:56 07-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

Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Вопросы по Delphi 2
ShIvADeSt (22-03-2007 02:18): http://forum.ru-board.com/topic.cgi?forum=33&topic=8142


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

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

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru