![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Текстовик и поиск
zdm © (2008-04-18 16:25:00)Мастера, помогите... не могу растормозиться.. смысл, в директории есть файлы, она вскрывается(директория) накохдится первый файл и далее... выдает ошибку на Reset когда .. AssignFile проходит.. вот примерный код.
procedure TFormOsn.DirectoryEditSourceChange(Sender: TObject);
var T:TextFile;
S:TSearchRec;
Str:String;
begin
FindFirst(pchar(DirectoryEditSource.LongName+'/*.*'),faAnyFile,S); //ищем первое вхождение
while FindNext(s)=0 do // пока незакончится поиск ... делаем
begin
if (s.Name<>'..') or (s.Name<>'.') then
begin
ShowMessage(s.Name);
AssignFile(T,pchar(DirectoryEditSource.LongName+'\'+s.Name)); //ассоциируем файл текстовиков
Reset(T);
while not Eof(t) do // пока читаем текст, файла вносим в таблицу данные
begin
Readln(t,str);
ShowMessage(str);
end;
end;
end;
Anatoly Podgoretsky (2008-04-18 16:52:00) [1]> zdm77 (18.04.2008 16:42:12) [12]
А так ты слово знаешь, но намеренно применяешь дворовый сленг.
Anatoly Podgoretsky (2008-04-18 16:50:00) [2]> Ёжик (18.04.2008 16:32:04) [4]
Ничего страшного, но не по нашенски, может он засланец?
Palladin (2008-04-18 16:50:00) [3]
> zdm77 (18.04.08 16:49) [17]
произнеси его (условие) словами и сюда напиши произношение
Anatoly Podgoretsky (2008-04-18 16:49:00) [4]> Dennis I. Komarov (18.04.2008 16:30:01) [1]
Файл Пушки?
zdm77 (2008-04-18 16:49:00) [5]финдферст делает всегда первое вхождение в директорию как .. и . т.е. вышестоящие директории. когда говорю
if (s.Name<>'..') or (s.Name<>'.') then
begin
ShowMessage(s.Name);
.он первыми и выдает мне ..
Palladin (2008-04-18 16:47:00) [6]
> Ёжик (18.04.08 16:45) [13]
да это как раз и основное, ему '..' попадается и он ее открывает как текстовый файл... молодец, что еще можно сказать...
zdm77 (2008-04-18 16:47:00) [7]ну тогда напомните как задать параметр правильно для поиска НЕ ДИРЕКТОРИЙ.. и сам подумай.. причем сдесь условие И, если может или или быть
Palladin (2008-04-18 16:46:00) [8]начнем по порядку, голова есть? думаю есть... и хорошо есть... но она должна не только есть, но и думать... я так полагаю...
ты это условие как понимаешь?
if (s.Name<>'..') or (s.Name<>'.')
переведи на понятный язык, то есть по русски его проговори
Ёжик (2008-04-18 16:45:00) [9]> if (s.Name<>'..') or (s.Name<>'.') then
попробуй OR заменить на AND, хотя (как это отметил Palladin) это все лишнее ( не по существу)
zdm77 (2008-04-18 16:42:00) [10]
> Palladin © (18.04.08 16:40) [8]
не могу растормозиться.. поправь плиз что не так в коде
zdm77 (2008-04-18 16:42:00) [11]када=когда
Palladin (2008-04-18 16:41:00) [12]что такое када?
zdm77 (2008-04-18 16:40:00) [13]if (s.Name<>'..') or (s.Name<>'.') then
begin
почему када делаю дальше ShowMessage(s.Name); он мне показывает '..'?
Palladin (2008-04-18 16:40:00) [14]какое именно слово непонятно?
zdm77 (2008-04-18 16:38:00) [15]да пропуск типа если попал на папки '..' или '.' первые вхождения в директории... а дальше что найдет то и читать.. результ функции финднекст возвращает ноль если нашел.
> Palladin © (18.04.08 16:34) [6]
Да скажи плиз попроще.. или прим код приведи..где глюк.. Спс заранее
Palladin (2008-04-18 16:34:00) [16]
> if (s.Name<>'..') or (s.Name<>'.') then
какое интересное условие :)
> AssignFile(T,pchar(DirectoryEditSource.LongName+'\'+s.Name));
PChar то на кой? ужос просто...
> FindFirst(pchar(DirectoryEditSource.LongName+'/*.*'),faAnyFile,
> S); //ищем первое вхождение
первое вхождение нашли и тут же!
> while FindNext(s)=0 do
его послали на хутор бабочек ловить
кошмар
фильтра на папки нет, открытый файл не закрывается... такое безудержное желание за метлой послать...
Dennis I. Komarov (2008-04-18 16:32:00) [17]Ошибка секретная?
Ёжик (2008-04-18 16:32:00) [18]procedure AssignFile(var F; FileName: string );
где ты нашел Pchar?
zdm77 (2008-04-18 16:32:00) [19]при первом вхождении
zdm77 (2008-04-18 16:31:00) [20]да закроем канешь... говорюж пока ток на вскидку код... на Reset ошибка уже