Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 20.12.2008, 17:16
lamber lamber вне форума
Прохожий
 
Регистрация: 20.12.2008
Сообщения: 1
Репутация: 10
По умолчанию Проблемы с открытием файлов

Суть в следующеем имеется некий файл текстовый и понему строится дерево через TreeView.Loadfromfile();
С помощью этого дерева формируется структура катологов и файлов. и вот я построил эту структуру и хочу ей воспользоватся в каждой папке есть текстовый файл из которого нужно забрать информацию файл текстовый, но припопытке чтения выдает что фал не найден. Вот привожу код.

Код:
procedure TForm2.Button2Click(Sender: TObject);
var
st:string;
i:integer;
t:textfile;
str:string;
cur:string;
begin
SetCurrentDir(MyDir);
   st:=Edit1.Text;
for i:= 0 to (TreeView1.Items.Count - 1) do
begin
 SetCurrentDir('database');
SetCurrentDir(TreeView1.Items[i].Text);
Cur:=TreeView1.Items[i].text;
Cur:=Cur+'.txt';
AssignFile(t,Cur);
Reset(t);
while not eof(t) do
while not eoln(t) do
begin
 st:='';
 Readln(t,str);
 if pos(st,str) <> 0 then
  begin
  memo1.Lines.Add(TreeView1.Items[i].Text);
  TreeNode:=TreeView1.Items[i];
   while TreeNode.Parent <> nil do
   begin
      memo2.Lines.Add(TreeNode.Parent.Text);
      TreeNode:=TreeNode.Parent;
   end;
end;
end;
Ответить с цитированием
  #2  
Старый 21.12.2008, 00:31
Аватар для KOOL
KOOL KOOL вне форума
Активный
 
Регистрация: 06.01.2008
Адрес: Рязань
Сообщения: 306
Версия Delphi: 2009
Репутация: 6150
По умолчанию

думаю, у тебя ошибка тут:
Код:
...
for i:= 0 to (TreeView1.Items.Count - 1) do
begin
 SetCurrentDir('database'); //<--
SetCurrentDir(TreeView1.Items[i].Text); //<--
Cur:=TreeView1.Items[i].text;
Cur:=Cur+'.txt';
AssignFile(t,Cur); //<--
...
не надо злоупотреблять сменой текущей директории,тем более неграмотно. допустим, в treeview 2 итема-"папка1" и "папка2". вот как будет работать код:
Код:
//i=0
SetCurrentDir('database'); //cd="*/database/"
SetCurrentDir(TreeView1.Items[i].Text); //cd="*/database/папка1"
...
//i=1
SetCurrentDir('database'); //cd="*/database/папка1/database/"
SetCurrentDir(TreeView1.Items[i].Text); //cd="*/database/папка1/database/папка2"
...
поэтому НУЖНО использовать полные или относительные пути, то есть код надо немного переделать
Код:
...
ppath:=Extractfilepath(paramstr(0));//путь к программе
for i:= 0 to (TreeView1.Items.Count - 1) do
begin
Cur:=TreeView1.Items[i].text;
AssignFile(t, ppath+'database/'+Cur+'/'+Cur+'.txt');//используем полный путь
...
должно получиться. и не надо забывать, что в дельфи есть отладчик
__________________
РГРТУ - ФВТ - Системы Автоматизированного ПРоектирования. ت
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 14:05.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter