Есть процедура поиска файлов:
procedure FindFiles(StartFolder, Mask: string; strlst: TStringlist; ScanSubFolders: Boolean = True);
var
SearchRec: TSearchRec;
FindResult: Integer;
begin
try
StartFolder := IncludeTrailingBackslash(StartFolder);
FindResult := FindFirst(StartFolder + '*.*', faAnyFile, SearchRec);
try
while FindResult = 0 do
with SearchRec do
begin
if (Attr and faDirectory) <> 0 then
begin
if ScanSubFolders and (searchrec.Name <> '.') and (searchrec.Name <> '..') then
FindFiles(StartFolder + searchrec.Name, Mask, strlst, ScanSubFolders);
end
else
begin
if MatchesMask(searchrec.Name, Mask) then
strlst.Create;
strlst.Add(StartFolder+searchrec.Name);
end;
FindResult := FindNext(SearchRec);
end;
finally
FindClose(SearchRec);
end;
finally
strlst.EndUpdate;
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
var
lst:Tstringlist;
begin
lst.Create;
FindFiles('C:\Documents and Settings\Àäìèíèñòðàòîð\Ðàáî÷èé ñòîë', '*.xls*', lst, true);
end;
При выполнении вот этой строки:
strlst.Add(StartFolder+searchrec.Name);
вылетает ошибка:
access violation at ...
Подскажите пожалуйста в чем дело.
RPI.su - самая большая русскоязычная база вопросов и ответов. Наш проект был реализован как продолжение популярного сервиса otvety.google.ru, который был закрыт и удален 30 апреля 2015 года. Мы решили воскресить полезный сервис Ответы Гугл, чтобы любой человек смог публично узнать ответ на свой вопрос у интернет сообщества.
Все вопросы, добавленные на сайт ответов Google, мы скопировали и сохранили здесь. Имена старых пользователей также отображены в том виде, в котором они существовали ранее. Только нужно заново пройти регистрацию, чтобы иметь возможность задавать вопросы, или отвечать другим.
Чтобы связаться с нами по любому вопросу О САЙТЕ (реклама, сотрудничество, отзыв о сервисе), пишите на почту [email protected]. Только все общие вопросы размещайте на сайте, на них ответ по почте не предоставляется.