Модераторы: Snowy, MetalFan, bems, Poseidon
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Проблемы с сохранением типизированного файла, может я чего-то не понимаю? 
V
    Опции темы
KOntra
Дата 24.5.2007, 15:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 20
Регистрация: 22.3.2007

Репутация: нет
Всего: 1



{Я честно пытался найти решение своей проблемы в уже существовавших темах, но всё равно не понял...}

Проблемы с сохранением файла! Вроде всё сделал как надо, но файл не сохраняется! По выбранному пути его просто нет. Не пойму в чём дело.

Вот типы файла и динамического списка, который сохраняется в этот файл, если это нужно.
Код

Type 
  TpointerSp = ^TrecSp;  //тип "указатель" на запись
  TrecSp = record  //тип самой записи
    inf,key : smallint;
    next : TpointerSp
  end;
  TrecSpFile = record  //тип записи файла (типизированный файл)
    infF,keyF : smallint;
  end;
 


Процедура вызова TSaveDialog
Код

procedure TMainForm.save_in_file_spClick(Sender: TObject);
begin
  SaveDialog.InitialDir:=ExtractFilePath(Application.ExeName);
  SaveDialog.Filter :='files|*.kurs2';
  SaveDialog.FilterIndex:=1;
  if SaveDialog.execute then
     savelist(First,str(SaveDialog.Filename));  //процедура сохранения, str - это тип строки string[20]
  if FileExists(SaveDialog.Filename) then
    begin
        FileListBox.Items.Add(SaveDialog.Filename); // После сохранения вот это не происходит!
    end;
end;



Вот собственно процедура сохранения, в неё передаются указатель на первый элемент списка и имя файла.
Код

procedure savelist(var First:TpointerSp;FileName:str);
var f : file of TrecSpFile;
    zf : TrecSpFile;
    R : TpointerSp;
    k,d : integer;
begin
 assignfile(f,FileName);
 rewrite(f)
 R := First;
 repeat
   with R^,zf do
     begin
       keyF := key;
       infF := inf
     end;
   write(f,zf);
   R := R^.next;
 until R = First;
 closefile(f);
end;


 smile  Файла нет! Где ошибка?

PM MAIL   Вверх
Shaggy
Дата 24.5.2007, 18:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 37
Регистрация: 2.5.2007
Где: г.Ижевск

Репутация: 2
Всего: 5



а если так?
Код

savelist(First,SaveDialog.Filename);  
...
procedure savelist(var First:TpointerSp;FileName:string);

PM MAIL ICQ   Вверх
KOntra
Дата 24.5.2007, 18:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 20
Регистрация: 22.3.2007

Репутация: нет
Всего: 1



Я же говорю, что
Код

type str=string[20];


Ошикба не в этом была, точней я так и не узнал в чём была ошибка, но проблема устранена. Если кто хочет из проффесионального интереса поискать в чём была проблема, то буду признателен. Самому интересно... Если, конечно, проблема была в этом коде.

Точно могу сказать, что в процедуре
Код

procedure savelist(var First:TpointerSp;FileName:str);

ошикби нет.

Зато вот как я изменил 
Код

procedure TMainForm.save_in_file_spClick(Sender: TObject);
var SearchRecCon: TSearchRec;
begin
   if SaveDialog.execute then
    begin
       SaveDialog.InitialDir:=ExtractFilePath(Application.ExeName);
       SaveDialog.Filter :='files|*.kurs2';
       SaveDialog.FilterIndex:=1;
       savelist(First,str(SaveDialog.Filename));    
       if FileListBox.Items.Strings[0]='<пусто>' then
                FileListBox.Items.Clear;
       FileListBox.Items.Add(ExtractFileName(SaveDialog.Filename))         
    end
end;


Хоть здесь я не делаю проверки FileExists, но зато в директории файл есть!))

Всем спасибо.

Добавлено через 10 минут и 42 секунды
Цитата(Shaggy @  24.5.2007,  18:18 Найти цитируемый пост)
а если так?


Код

savelist(First,SaveDialog.Filename);  
...
procedure savelist(var First:TpointerSp;FileName:string);


Кажется понял, в вашем варианте, заработала бы, ибо раньше у меня 

Код

type str=string[20]


, а теперь

Код

type str=string[100]


Скорей всего в первом случае в str не помещался полный путь поиска файла.

Ещё раз спасибо)

Это сообщение отредактировал(а) KOntra - 24.5.2007, 18:34
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Для новичков"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0635 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.