Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 30.12.2009, 21:05   #1
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,442
Вопрос [я Новичёк] Уважаемые Гуру помогите Организовать замысел

Приветствую вас Эксперты!
Пишу свой парсер log фаилов. который будет отбирать от туда определённые "фразы" и выводить их в Memo, при выходе из программы сохраняет.
Но возникли следующие трудности:
Есть авто запись настроек программы:
Код:
procedure TMainForm.FormDestroy(Sender: TObject);
var
   Ini:TIniFile;
begin
   Ini:=TIniFile.Create(ExtractFilePath(Application.ExeName)+'Settings.ini');
   Ini.Writestring('Settings','LogDir',SettingsPathDir.text);
   Ini.Free;
end;

procedure TMainForm.FormCreate(Sender: TObject);
var
   Ini:TIniFile;
begin
   Ini:=TIniFile.Create(ExtractFilePath(Application.ExeName)+'Settings.ini');
   SettingsPathDir.Text:=Ini.ReadString('Settings','LogDir','Путь до папки с Логами...');
   Ini.Free;
   SkinProvider.AddedTitle.Text:='('+Version+')';
end;
при запуске программы хочу организовать проверку на подлинность пути... и если путь не верен то выдавать сообщение, и после нажатия выставлять значение по дефолту. Далее если директория существует то сканировать её на наличие фаилов.(а так это не происходит автоматически, путь пишется в Edit но не сканируется, приходится снова выбирать папку сканирования.) Как и где это з
сделать?

Далее попытался организовать запуск фаилов в ListBox и отправку содержимого в Memo(код нашёл на этом форуме):
Код:
procedure TMainForm.FoundFilesListDblClick(Sender: TObject);
begin
EditBox.Lines.LoadFromFile(FoundFilesList.Items[FoundFilesList.ItemIndex]);
end;
опять же , программа пытается извлечь фаил из директории программы где его нет, как написать что бы учитывался полный путь до этой папки с файлами(где лежат файлы)?

Есть радиогруппа с элементами и 2 кнопки.
Элементы:
Серийные номера(HDDSN)
Несуществующие Файлы(FILE_N_F)
Нечитаемые Файлы(FILE_N_R)
Подозрительный Файл(S_FILE)

Кнопка (Начать Поиск) и Отмена

По нажатию Старт Начинает выполнятся код:
Код:
procedure ReadHDDSN(Files: string);
const
  BeginIP = '>';
  EndIP = '(';
  BeginTag = 'HDDSN="';
  EndTag = '"';
  SectName = '<';
var
  F: TextFile;
  S, Text, TextIP: string;
  B, E, L: Integer;
  BI, EI, LI: integer;
begin
  AssignFile(F, Files);
  Reset(F);
  Readln(F, S);
  if not (Pos(SectName, S) > 0) then exit;

  L := length(BeginTag);
  LI := Length(BeginIP);
  AssignFile(F, Files);
  Reset(F);
  while not eof(f) do
  begin
    Readln(F, S);
    B := Pos(BeginTag, S);
    E := Pos(EndTag, S);

    BI := Pos(BeginIP, S);
    EI := Pos(EndIP, S);

    if B <> 0 then
    begin
      TextIP := Copy(S, BI + LI, EI - BI - LI);
      Text := Copy(S, B + L - 1, E);
      MainForm.EditBox.Lines.Add(TextIP + ' HDDSN=' + Text);
    end;
  end;
  CloseFile(F);
end;
который выводит результат в RichEdit вида:
PHP код:
 [192.168.122.137]  HDDSN="WD-WMAT10049311"  5.1.2600
  
[10.2.36.69]       HDDSN="S00JJ1SY942782"  5.1.2600
  
[10.1.24.111]      HDDSN="S07GJ1LL903476"  5.1.2600
  
[10.2.236.193]     HDDSN="5JVNGJEW"  5.1.2600
  
[10.1.5.224]       HDDSN="GEA530RE1P60LE"  5.1.2600
  
[10.1.2.191]       HDDSN="S13TJ1NQA04755"  5.1.2600
  
[10.6.148.34]      HDDSN="GEA554RJ29UBYG"  5.1.2600
  
[10.1.5.225]       HDDSN="S0HVJ1CLB18042"  5.1.2600
  
[10.2.26.192]      HDDSN="5JVVV4M1"  5.1.2600
  
[10.2.236.193]     HDDSN="5JVNGJEW"  5.1.2600
  
[10.2.32.242]      HDDSN="GEA530RF08X5GA"  5.1.2600
  
[10.2.236.193]     HDDSN="5JVNGJEW"  5.1.2600
  
[10.1.5.239]       HDDSN="S0MQJ90Q211435"  5.1.2600
  
[10.6.148.34]      HDDSN="GEA554RJ29UBYG"  5.1.2600 
когда нужны записи без версий ОС. Последние цифры (5.1.2600 и есть версии ОС).. помогите подправить.... также хочется организовать чтобы в радио группе можно было выбирать тип поискового значения, и по нажатию кнопки искать то значение которое задано радио кнопками.

Есть поиск в RichEdit (найден на этом форуме):
Код:
procedure TMainForm.FastSearchBtnClick(Sender: TObject);
var
i:integer;
begin
for i:=0 to EditBox.Lines.Count -1 do
begin
if Pos(AnsiUpperCase(FastSearch.Text), AnsiUpperCase(EditBox.Lines.Strings[i]))<>0 then
begin
MainForm.SetFocus;
EditBox.SetFocus;
EditBox.SelStart:=SendMessage(EditBox.Handle,EM_LINEINDEX,i,0)+pos(FastSearch.Text,EditBox.Lines.Strings[i])-1;
EditBox.SelLength:=Length(FastSearch.Text);
EditBox.SelAttributes.Color:=clRed;
end;
EditBox.Update;
end;
end;

procedure TMainForm.FastSearchBtnStopClick(Sender: TObject);
begin
EditBox.SelStart:=0;
EditBox.SelLength:=Length(FastSearch.Text);
EditBox.SelAttributes.Color:=clblack;
EditBox.Update;
end;
хотелось бы подправить его , ибо по нажатию отмена он сбрасывает цвета в RichEdit.
Вложения
Тип файла: zip Proga(EXE).zip (761.8 Кб, 11 просмотров)
Тип файла: zip myprog(src).zip (814.2 Кб, 10 просмотров)

Последний раз редактировалось Человек_Борща; 30.12.2009 в 21:07.
Человек_Борща вне форума
Старый 30.12.2009, 21:05   #2
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,442
По умолчанию

Так же знаю что RichEdit как и Memo имеют ограниченную вместимость в себя...
везде написано что можно превращать фаил в поток и загружать по блокам.. но ни где не показано как..

И можно ли как-то все просканированные фаилы из listBox превращать в один поток и пихать в один фаил и потом уже сканировать?

Извиняюсь что так много..
Сурс и Исполняемый Фаил(с куском лога можно в аттаче найти.)
В программе по нажатию(авто-поиск можно выбрать лог и посмотреть на работу ReadHDDSN).
Помогите Программировать недавно начал Изучил пару учебников
Человек_Борща вне форума
Старый 30.12.2009, 22:35   #3
Sensizu
Otsukitakitte
Форумчанин
 
Аватар для Sensizu
 
Регистрация: 01.10.2009
Сообщений: 126
По умолчанию

Про подленность пути:
if DirectoryExists(dir:string);
или
if FileExists(file:string); // если нужно проверить существует ли файл

На счёт сканирования файлов в директории:
Попробуй TFileListView:
TFileListView.ApplyDirectory(dir:st ring); // dir - твоя папка с файлами
Теперь в этом списке есть все файлы в этой папке. Дальше простым цыклом находишь по имени или по кусочку имени нужный.
Помог - ставь плюс.
$("question").onAnswer(function() { $(this).getItWright(true); });
Sensizu вне форума
Старый 30.12.2009, 22:51   #4
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

Цитата:
Так же знаю что RichEdit как и Memo имеют ограниченную вместимость в себя...
2Гб вам мало?
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума
Старый 30.12.2009, 23:10   #5
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

У нас принято давать темам названия, отражающие суть вопроса.
Модератор
mihali4 вне форума
Закрытая тема


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите собрать .... netbioz Компьютерное железо 5 05.10.2009 19:12
Помогите пожалуйсто с задачкой, исходник есть!! нужно преобразовать все это в С++2005! спс за рание! immortalwar Помощь студентам 0 10.06.2009 09:31
Форум без перезагрузки страницы. Как все собрать в едино? Web-Gangsta JavaScript, Ajax 15 07.05.2009 00:32