Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Почему Icompatible types? [D6, Win95/98]


iNew ©   (2003-08-19 04:07:00) 

procedure TForm1.MyProc(SourceDir:String);
var lpFD : WIN32_FIND_DATA;
hd : integer;
MyBool : Boolean;
begin
MyBool:=true;
hd:=FindFirstFile(PChar(SourceDir+"\*.*"),lpFd);
try
while MyBool do
begin
if (lpFD.cFileName <> ".") and(lpFD.cFileName <> "..") then
begin
if lpFD.dwFileAttributes and FILE_ATTRIBUTE_DIRECTORY = 0 then
begin
...............
ListBox1.Items.Append(lpFD.cFileName);
end
else
begin
...............................
MyProc(SourceDir+"\"+lpFD.cFileName)
end;
end;
MyBool:=FindNextFile(hd,lpFD);
end;
finally
Windows.FindClose(hd);
end;
end;

Почему в строке
if (lpFD.cFileName <> ".") and(lpFD.cFileName <> "..")
отладчик говорит Icompatible types, хотя если сделать так:
var Str1,Str2 : String;
begin
Str1:=".";
Str2:="..";
if (lpFD.cFileName <> Str1) and(lpFD.cFileName <> Str2)
то всё нормально.
Да и вообще правильно ли сделан рекурсивный обход каталогов?


default   (2003-08-19 09:29:00) [1]

глазей в окно CPU в таких случаях
может тебе откроется истина


iNew   (2003-08-19 09:15:00) [2]

> Игорь Шевченко
>Потому что WIN32_FIND_DATA.cFileName объявлена не как String а >как array of char.
Это я действительно посмотрел в справке. Меня просто интересует чем отличается
if (lpFD.cFileName <> Str1) and(lpFD.cFileName <> Str2) от
if (lpFD.cFileName <> ".") and(lpFD.cFileName <> "..")
ведь str1 это и есть "."

P.S. >Игорь Шевченко. Если жалко времени можно не отвечать :(


Игорь Шевченко   (2003-08-19 09:08:00) [3]

Потому что WIN32_FIND_DATA.cFileName объявлена не как String а как array of char.

#ifdef FLAME
До каких пор народ будет просить других поработать в качестве компилятора, блин! Что мешает САМОМУ посмотреть объявление нужных структур в исходниках или по справке ?
Уважайте чужое время, плз
#endif


Наверх

Титульная страница Поиск, карта сайта Написать письмо