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

Вниз

Ошибка   Найти похожие ветки 

 
Sergey_Suhoy   (2002-11-26 17:40) [0]

Очень интересно... Вроде все правильно, но такая конструкция не работает (при выполнении нижеследующего кода возникает ошибка external exception). Прямо гвоздь в ботинке :-). Подскажите, кто знает, в чем я неправ?

//=========CUT============
procedure TForm1.YesBitBtnClick(Sender: TObject);
function FindTXTfiles: TStrings;
var TXTfile: TSearchRec;
TXTFileList: TStrings;
begin
TXTFileList := TStringList.Create;
if FindFirst("C:\*.txt", faAnyFile, TXTfile) = 0 then
begin
TXTFileList.Add("C:\" + TXTfile.Name);
while FindNext(TXTfile) = 0 do TXTFileList.Add("C:\" + TXTfile.Name);
end;
FindClose(TXTfile); Result := TXTFileList; TXTFileList.Free;
end;
begin
DebugMemo.Lines.Add("Обнаружены следующие TXT-файлы...");
DebugMemo.Lines.AddStrings(FindTXTfiles);
end;
//=========CUT============


 
Smithson ©   (2002-11-26 17:50) [1]

А на какой конкретно строке возникает ошибка?
И что значит Result := TXTFileList;, у тебя же процедура? Код, похоже, не полный?


 
mike-d ©   (2002-11-26 17:50) [2]

Что-то ты тут со Strings намудрил...
Result := TXTFileList; // Result := указателю на объект
TXTFileList.Free; // тут ты его тихо прибил

DebugMemo.Lines.AddStrings(FindTXTfiles); // что теперь вставлять будем?


 
MBo ©   (2002-11-26 17:52) [3]

procedure FindTXTfiles(TXTFileList:TStrings);
...

FindTXTfiles(DebugMemo.Lines);



 
mrcat ©   (2002-11-26 17:57) [4]

дык оно и не должно работать!!!
смотри:

procedure FindTXTfiles(const str: TStrings);
var
TXTfile: TSearchRec;
TXTFileList: TStrings;

begin
TXTFileList := TStringList.Create;
if FindFirst("C:\*.txt", faAnyFile, TXTfile) = 0 then begin
TXTFileList.Add("C:\" + TXTfile.Name);
while FindNext(TXTfile) = 0 do TXTFileList.Add("C:\" + TXTfile.Name);
end;
FindClose(TXTfile);
Str.AddStrings(TXTFileList); TXTFileList.Free;
end;

begin
DebugMemo.Lines .Add("Обнаружены следующие TXT-файлы...");
FindTXTfiles(DebugMemo.Lines);
end;


 
MBo ©   (2002-11-26 18:05) [5]

>mrcat
Ну ты наворотил...

procedure FindTXTfiles(TXTFileList:TStrings);
var TXTfile: TSearchRec;
begin
if FindFirst("C:\*.txt", faAnyFile, TXTfile) = 0 then
begin
TXTFileList.Add("C:\" + TXTfile.Name);
while FindNext(TXTfile) = 0 do TXTFileList.Add("C:\" + TXTfile.Name);
FindClose(TXTfile);
end;
end;


 
mrcat ©   (2002-11-26 18:07) [6]

>>MBo
неважно, оптимизацией пусть сам занимается =)


 
tv ©   (2002-11-26 18:18) [7]

По моему тут дело все в TXTFileList: TStrings.
Попробуй

function FindTXTfiles: TStringList;
var TXTfile: TSearchRec;
TXTFileList: TStringList;

ну и так далее...


 
mrcat ©   (2002-11-26 18:21) [8]

>>2tv
>>По моему тут дело все в TXTFileList: TStrings.

истина в ... процедуре



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

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

Наверх




Память: 0.48 MB
Время: 0.018 c
1-14668
lionkiller
2002-11-25 17:14
2002.12.05
StringGrid


1-14662
kingdom
2002-11-22 18:18
2002.12.05
Как распознать COM?


6-14707
Pavel_S
2002-10-08 10:19
2002.12.05
Проблема с UDP


4-14878
PHN
2002-10-21 18:32
2002.12.05
Чтение Integer из памяти процесса


1-14629
REP
2002-11-25 07:47
2002.12.05
Композитный отчет QReport