Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.10.23;
Скачать: CL | DM;

Вниз

аналог DosError в Delphi   Найти похожие ветки 

 
heady   (2003-10-11 21:10) [0]

вопрос - аналог DosError в Delphi?

цель - вывести список файлов по маске в файл...
на TP7 это выглядело:
uses dos;
var
s:searchRec;
begin
FindFirst("*.pas", AnyFile,s);
while DosError=0 do
begin
with s do
writeln(Name^12,Size:12);
FindNext(s);
end;
end.

Зарание благодарен.


 
Palladin ©   (2003-10-11 21:13) [1]

FindFirst+F1


 
heady   (2003-10-11 21:23) [2]

сложновато, блин :(
может ссылкой какой запустите?


 
Anatoly Podgoretsky ©   (2003-10-11 21:24) [3]

Аналог есть LastError, но для задачи он не нужен, см. FindFirst+F1 и Чаво


 
Anatoly Podgoretsky ©   (2003-10-11 21:24) [4]

GetLastError


 
heady   (2003-10-11 21:28) [5]

а модуль какой подключать?


 
Anatoly Podgoretsky ©   (2003-10-11 21:38) [6]

Это означает, что ты не выполнил инструкцию FindFirst+F1, ленивый ты Парамоша.


 
Palladin ©   (2003-10-11 21:45) [7]

:))


> heady (11.10.03 21:28) [5]

в общем то я думаю тебе будет более интересна не сама справка, а ссылка example чуть повыше текста справки...


 
heady   (2003-10-11 21:47) [8]

не без этого =) на самом деле выполнил но там как-то много и не по русски :) мне надо просто в файл а не в какой-нить стремный объект .... аааа хочу просто хороший компилятор паскаля под винду...и чтобы с длинными именами работал и не дорого :)


 
heady   (2003-10-11 21:50) [9]

procedure TForm1.Button1Click(Sender: TObject);

var
sr: TSearchRec;
FileAttrs: Integer;
begin
StringGrid1.RowCount := 1;
if CheckBox1.Checked then
FileAttrs := faReadOnly
else
FileAttrs := 0;
if CheckBox2.Checked then
FileAttrs := FileAttrs + faHidden;
if CheckBox3.Checked then
FileAttrs := FileAttrs + faSysFile;
if CheckBox4.Checked then
FileAttrs := FileAttrs + faVolumeID;
if CheckBox5.Checked then

FileAttrs := FileAttrs + faDirectory;
if CheckBox6.Checked then
FileAttrs := FileAttrs + faArchive;
if CheckBox7.Checked then

FileAttrs := FileAttrs + faAnyFile;

with StringGrid1 do
begin
RowCount := 0;

if FindFirst(Edit1.Text, FileAttrs, sr) = 0 then

begin
repeat
if (sr.Attr and FileAttrs) = sr.Attr then
begin
RowCount := RowCount + 1;
Cells[1,RowCount-1] := sr.Name;
Cells[2,RowCount-1] := IntToStr(sr.Size);
end;
until FindNext(sr) <> 0;
FindClose(sr);
end;
end;
end;

отлично, но ничего не понял :( (старался)


 
Palladin ©   (2003-10-11 22:03) [10]

тебе нужно лишь это
if FindFirst(Edit1.Text, FileAttrs, sr) = 0 then

begin
repeat
if (sr.Attr and FileAttrs) = sr.Attr then
begin
RowCount := RowCount + 1;
Cells[1,RowCount-1] := sr.Name;
Cells[2,RowCount-1] := IntToStr(sr.Size);
end;
until FindNext(sr) <> 0;
FindClose(sr);
end;

что тут непонятного?


 
Anatoly Podgoretsky ©   (2003-10-11 22:04) [11]

В это не возмозно поверить, неужели непоняд даже что такое end?
Хочешь, чтобы помогли то говорил конкретно, что не понял или как понял.
Возьми также чаво с моей страницы, там более культурный FindFirst, вполне приличный пример и в местном Чаво



Страницы: 1 вся ветка

Текущий архив: 2003.10.23;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.024 c
1-74203
MetalFan
2003-10-10 08:44
2003.10.23
RichEdit, координаты символа


3-73991
Настенька
2003-09-30 09:10
2003.10.23
файлы BDE


1-74192
Qwerr
2003-10-10 10:44
2003.10.23
TDBGrid


4-74541
Michael Makushev
2003-08-18 13:30
2003.10.23
TThread - и совместное использование данных


14-74430
DeMoN-777
2003-10-05 14:29
2003.10.23
Программирование лентяйки