Добавление строки в готовый файл

Вопросы программирования и использования среды Lazarus.

Модератор: Модераторы

Добавление строки в готовый файл

Сообщение Furioness » 21.04.2012 21:08:55

В общем делаю твикер для одной игрушки. Создал диалог сохранения файла.
Но ещё мне необходимо его активировать, прописав в главном конфиге игрушки строку вроде "exec filename.cfg" в конце.
Вопрос в том, как получить адрес каталога(можно-ли использовать диалог сохранения файла) и дописать необходимую строку в конец файла.
Furioness
незнакомец
 
Сообщения: 4
Зарегистрирован: 21.04.2012 21:01:18

Re: Добавление строки в готовый файл

Сообщение xcod » 21.04.2012 22:32:31

Не совсем понятно
как создавали диалог сохранения? в ручную?
или кинули на форму компоненту SaveDialogs из палитры DIalogs?
В SaveDialogs есть свойство FileName которое содержит абсолютное имя файла
xcod
постоялец
 
Сообщения: 108
Зарегистрирован: 07.08.2009 12:37:23

Re: Добавление строки в готовый файл

Сообщение Furioness » 22.04.2012 02:08:57

Компонентом разумеется) Файлнейм содержит абсолютное, а я хочу получить адрес директории. Но ладно, это можно сделать простым обрезанием строки filename с конца до символа "/".
Более сложный вопрос в том, чтобы взять определённый файл из полученного каталога и дописать в его конец определённую строку.
Furioness
незнакомец
 
Сообщения: 4
Зарегистрирован: 21.04.2012 21:01:18

Re: Добавление строки в готовый файл

Сообщение Сквозняк » 22.04.2012 04:29:32

Furioness писал(а):Более сложный вопрос в том, чтобы взять определённый файл из полученного каталога и дописать в его конец определённую строку.

Зачем тебе это? Через диалог сохранения ты получаешь полный путь сохраняемого файла и записываешь его в строку типа ansistring. Этот полный путь ты используешь при создании файла в который сохраняешь игру. Для загрузки сохранённой игры используешь диалог открытия файлов, открыв в нём файл ты получаешь его полный путь который используешь в процедуре чтения файлов. Во избежание багов, лучше ничего в конец сохранки не дописывать а создавать каждый раз её заново, предварительно удалив содержимое редактируемого файла. Пока ты свою игру доделаешь, у тебя 100 раз поменяется тип содержимого сохраняемого файла.
Сквозняк
энтузиаст
 
Сообщения: 1129
Зарегистрирован: 29.06.2006 22:08:32

Re: Добавление строки в готовый файл

Сообщение Vadim » 22.04.2012 04:52:15

Furioness
Если файл текстовый, то путей добавления строк множество.
Вариант1:
Код: Выделить всё
Var
  F: TextFile;
Begin
  AssignFile(F, OpenDialog1.FileName);
  Append(F);
  WriteLn(F, 'Какая-нибудь строка');
  CloseFile(F);
End;

Вариант 2:
Код: Выделить всё
Var
  st: TStringList;
Begin
  st:=TStringList.Create;
  st.LoadFromFile(OpenDialog1.FileName);
  st.Add('Какая-нибудь строка');
  st.Free;
End;
Последний раз редактировалось Vadim 24.04.2012 03:14:49, всего редактировалось 1 раз.
Vadim
долгожитель
 
Сообщения: 4112
Зарегистрирован: 05.10.2006 08:52:59
Откуда: Красноярск

Re: Добавление строки в готовый файл

Сообщение sign » 22.04.2012 07:09:20

Код: Выделить всё
procedure TForm1.Button2Click(Sender: TObject);
var S: String;
begin
  if OpenDialog1.Execute then
    S := ExtractFileDir(OpenDialog1.FileName);
end;
sign
энтузиаст
 
Сообщения: 1131
Зарегистрирован: 30.08.2009 09:20:53

Re: Добавление строки в готовый файл

Сообщение xcod » 22.04.2012 08:46:49

Furioness писал(а):взять определённый файл из полученного каталога и дописать в его конец определённую строку.

в FileName у тебя уже абсолютный путь до файла, делай с этой строкой все что захочешь
обрезай, добавляй и т.д. и т.п.
как обрезать до пути выше уже ответили
xcod
постоялец
 
Сообщения: 108
Зарегистрирован: 07.08.2009 12:37:23

Re: Добавление строки в готовый файл

Сообщение Furioness » 23.04.2012 16:17:20

Не хочет он дописывать.
В 1 случае компилятору чем-то не нравится write, а во втором - нет такого типа "stringlist", а у "StrinGrid" нет функции "add"
Furioness
незнакомец
 
Сообщения: 4
Зарегистрирован: 21.04.2012 21:01:18

Re: Добавление строки в готовый файл

Сообщение kosteek » 23.04.2012 16:24:39

Вместо stringlist, напиши TStrings.
kosteek
постоялец
 
Сообщения: 203
Зарегистрирован: 24.07.2008 14:57:09
Откуда: Украина, г.Славянск

Re: Добавление строки в готовый файл

Сообщение Vadim » 24.04.2012 03:17:28

1.
Furioness писал(а):В 1 случае компилятору чем-то не нравится write

А чем не нравится - тайна, покрытая мраком? Может быть это Вам она не нравится, раз Вы писать ошибку не хотите? Так это же Вам нужно, а не нам, зачем тогда обращаетесь сюда? :)
2. Ошибочка небольшая, нужно так:
Код: Выделить всё
Var
  st: TStringList;
Vadim
долгожитель
 
Сообщения: 4112
Зарегистрирован: 05.10.2006 08:52:59
Откуда: Красноярск

Re: Добавление строки в готовый файл

Сообщение Furioness » 24.04.2012 16:44:20

sign писал(а):
Код: Выделить всё
procedure TForm1.Button2Click(Sender: TObject);
var S: String;
begin
  if OpenDialog1.Execute then
    S := ExtractFileDir(OpenDialog1.FileName);
end;


Файл остаётся без изменений.
Var
F: TextFile;
Begin
AssignFile(F, OpenDialog1.FileName);
Append(F);
WriteLn(F, 'Какая-нибудь строка');
CloseFile(F);
End;

Уже заработало, хотя вроде никаких изменений не делал :?
Ладно, всем спасибо, все свободны :mrgreen:
Furioness
незнакомец
 
Сообщения: 4
Зарегистрирован: 21.04.2012 21:01:18


Вернуться в Lazarus

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 231

Рейтинг@Mail.ru
cron