• Авторизация


Никто не подскажет, в чем косяк? 18-02-2007 12:39 к комментариям - к полной версии - понравилось!


Пишу прогу по заданию. Надо сделать поиск файла по имени и по содержимому. За поиск по содержимому я еще не брался, а при создании поиска по имени наткнулся на проблему, которую сам разрешить не могу.
Процедура выглядит так:

procedure TLoadForm.LoadButtonClick(Sender: TObject);
var
SearchFile:TSearchRec;
LoadF:TStringList;
begin
if FindFirst('C:\birds\data\ '+edit4.Text+ '.txt', faAnyFile, SearchFile)=0 then
begin
LoadF := TStringList.Create;
LoadF.LoadFromFile ('c:\birds\data' +edit4.Text+ '.txt');
Edit1.Text := LoadF.Strings[1];
Edit2.Text := LoadF.Strings[2];
Edit3.Text := LoadF.Strings[6];

Компилирует нормально, но при работе, когда пытаюсь найти файл (существующий), тормозится и выдает следующее:
Source Breakpoint at $00455303: D:\!!УЧЕБА!!\Delphi\Birds\LoadData.pas line 67. Process Birds.exe (1704)

Ошибку выдает на выделенной мною строке.
менял значение FindFirst на 1, результат тот же.
вверх^ к полной версии понравилось! в evernote
Комментарии (5):
Alxdm 18-02-2007-12:53 удалить
Очень похоже на включенную отладочную точку, попробуй ее снять.
Lightpower 18-02-2007-13:05 удалить
Попробуй откомпилить в Release-mode. Эксепшн пропадет?

offtop: В Edit4 может быть только имя или допустима маска файла?
ZardoZ 19-02-2007-01:18 удалить
Ну проверку существования файла проще делать функцией
function FileExists(FileName: string): Boolean;

а так да включен брэйкпоинт. Так это или нет проверяется элементарно - попробуй запустить откомпиленный экзешник в папке программы, если всё работает, то сними брэйкпоинт :).
Lightpower 19-02-2007-23:01 удалить
Найк: Lightpower, допустима маска
Тогда в строке "LoadF.LoadFromFile ('c:\birds\data' +edit4.Text+ '.txt');" ошибка
Надо
LoadF.LoadFromFile ('c:\birds\data' + fInfo.cFileName);

В детстве написал на С++ функцию, которая возвращает список файлов по маске. Портировать под Дельфи проблемы не вызовет, надеюсь?

code:
AnsiString FilesByMask(AnsiString Mask)
// return список полных имен файлов, соотв-щих данной маске, с разделителем '\r\n'
{
WIN32_FIND_DATA fInfo;
AnsiString RetVal = "",
dir = ExtractFilePath(Mask);
HANDLE fCpy = FindFirstFile(Mask.c_str(), &fInfo);
do {
RetVal = RetVal + dir + fInfo.cFileName + "\r\n";
} while(FindNextFile(fCpy, &fInfo));
return RetVal;
}



В колонках играет: *** 107. CHIJ - SNOVA POEZD

LI 5.09.15


Комментарии (5): вверх^

Вы сейчас не можете прокомментировать это сообщение.

Дневник Никто не подскажет, в чем косяк? | community_coding - Сообщество программистов | Лента друзей community_coding / Полная версия Добавить в друзья Страницы: раньше»