|
Вопрос # 5 177/ вопрос открыт / |
|
Здравствуйте, эксперты! Вот нашёл в интернете процедуру по поиску файлов по компьютеру. Пытался на его основе сделать программу, наподобии стандартного поиска. Но когда я пытался скомпилировать программу, там возникли 2 ошибки компилятора:
<End> expected but <Until> found.
<Until> expected but <End> found
Приложение: Переключить в обычный режим- function FolderScan(Folder: String; FileName: String): Boolean;
- var
- SR: TSearchRec;
- begin
- Result := False;
- while FindFirst(Folder + '*.*',faAnyFile,SR)=0 do
- begin
- repeat
- if (SR.Name = '.') or (SR.Name = '..') then
- Continue;
- if (SR.Attr and faDirectory <> 0) then
- begin
- Result := FolderScan(Folder+SR.Name+'\', fileName);
- if Result then
- Break
- else
- Continue;
- if SR.Name = FileName then
- begin
- Result := True;
- break;
- until
- FindNext(SR)<>0
- SysUtils.FindClose(SR);
- end;
- end;
- end;
- end.
Примечание #1 (11 апреля 2011, 16:06): В СТРОКЕ 22 1ошибка(<End> expected but <Until> found.)
В СТРОКЕ 26 2ошибка(<Until> expected but <End> found.)
 |
Вопрос задал: Кудя (статус: Посетитель)
Вопрос отправлен: 11 апреля 2011, 16:00
Состояние вопроса: открыт, ответов: 1.
|
Ответ #1. Отвечает эксперт: Вадим К
Здравствуйте, Кудя!
чуточку переставить end'ы на их законные места, получается код, который должен компилироваться и выглядит вполне работоспособным.
function FolderScan(Folder: String; FileName: String): Boolean;
var
SR: TSearchRec;
begin
Result := False;
if FindFirst(Folder + '*.*',faAnyFile,SR)=0 then
repeat
if (SR.Name = '.') or (SR.Name = '..') then
Continue;
if (SR.Attr and faDirectory <> 0) then begin
Result := FolderScan(Folder+SR.Name+'\', fileName);
if Result then
Break
else
Continue;
if SR.Name = FileName then begin
Result := True;
break;
end;
end;
until FindNext(SR)<>0;
SysUtils.FindClose(SR);
end;
 |
Ответ отправил: Вадим К (статус: Академик)
Время отправки: 11 апреля 2011, 16:08
Оценка за ответ: 5
|
Мини-форум вопроса
Всего сообщений: 6; последнее сообщение — 12 апреля 2011, 21:06; участников в обсуждении: 3.
|
Кудя (статус: Посетитель), 11 апреля 2011, 16:08 [#1]:
Собственно вопрос:
Как мне решить эту проблему. Веть если я сделаю то что меня просит компилятор, программа перестанет делать нужную мне задачу, темболее, ошибок станет больше.
Think Different. (c)
|
|
min@y™ (статус: Доктор наук), 11 апреля 2011, 16:12 [#2]:
Нефига копипастить всё подряд нечитавши.
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
|
11 апреля 2011, 17:52: Вопрос перемещён из тематического раздела Delphi » Оболочка Delphi, компилятор, версии среды и т.д. в раздел Delphi » Общие вопросы по программированию модератором Ерёмин А.А.
|
bugmenot (статус: 3-ий класс), 12 апреля 2011, 09:05 [#3]:
Оно всё равно с переполнением стека свалится :-)
Как же эти некогерентные смайлы уже задолбали...
виконання програми розпочинається з того самого мiсця, де призупинилося.
|
|
Кудя (статус: Посетитель), 12 апреля 2011, 19:54 [#4]:
Вопрос не по теме, но он слишком жалок для создания новой темы. Какого компилятор ругается на строку
function FolderScan(Folder: String; FileName: String): Boolean;
в коде:
function FolderScan(Folder: String; FileName: String): Boolean;
var
SR: TSearchRec;
begin
Result := False;
if FindFirst(Folder + '*.*',faAnyFile,SR)=0 then
repeat
if (SR.Name = '.') or (SR.Name = '..') then
Continue;
if (SR.Attr and faDirectory <> 0) then begin
Result := FolderScan(Folder+SR.Name+'\', fileName);
if Result then
Break
else
Continue;
if SR.Name = FileName then begin
Result := True;
break;
end;
end;
until FindNext(SR)<>0;
SysUtils.FindClose(SR);
end;
Think Different. (c)
|
|
min@y™ (статус: Доктор наук), 12 апреля 2011, 20:37 [#5]:
Цитата (Кудя):
Вопрос не по теме, но он слишком жалок для создания новой темы. Какого компилятор ругается на строку function FolderScan(Folder: String; FileName: String): Boolean;
Ошибка в 17-й строке.
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
|
|
Кудя (статус: Посетитель), 12 апреля 2011, 21:06 [#6]:
простите, там у меня незапланированный пропуск строки в коде=)
if SR.Name = FileName then begin????
или Result := True;??????
Think Different. (c)
|
Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.
|