Добавление строки в готовый файл
Модератор: Модераторы
Добавление строки в готовый файл
В общем делаю твикер для одной игрушки. Создал диалог сохранения файла.
Но ещё мне необходимо его активировать, прописав в главном конфиге игрушки строку вроде "exec filename.cfg" в конце.
Вопрос в том, как получить адрес каталога(можно-ли использовать диалог сохранения файла) и дописать необходимую строку в конец файла.
Но ещё мне необходимо его активировать, прописав в главном конфиге игрушки строку вроде "exec filename.cfg" в конце.
Вопрос в том, как получить адрес каталога(можно-ли использовать диалог сохранения файла) и дописать необходимую строку в конец файла.
Не совсем понятно
как создавали диалог сохранения? в ручную?
или кинули на форму компоненту SaveDialogs из палитры DIalogs?
В SaveDialogs есть свойство FileName которое содержит абсолютное имя файла
как создавали диалог сохранения? в ручную?
или кинули на форму компоненту SaveDialogs из палитры DIalogs?
В SaveDialogs есть свойство FileName которое содержит абсолютное имя файла
Компонентом разумеется) Файлнейм содержит абсолютное, а я хочу получить адрес директории. Но ладно, это можно сделать простым обрезанием строки filename с конца до символа "/".
Более сложный вопрос в том, чтобы взять определённый файл из полученного каталога и дописать в его конец определённую строку.
Более сложный вопрос в том, чтобы взять определённый файл из полученного каталога и дописать в его конец определённую строку.
Furioness писал(а):Более сложный вопрос в том, чтобы взять определённый файл из полученного каталога и дописать в его конец определённую строку.
Зачем тебе это? Через диалог сохранения ты получаешь полный путь сохраняемого файла и записываешь его в строку типа ansistring. Этот полный путь ты используешь при создании файла в который сохраняешь игру. Для загрузки сохранённой игры используешь диалог открытия файлов, открыв в нём файл ты получаешь его полный путь который используешь в процедуре чтения файлов. Во избежание багов, лучше ничего в конец сохранки не дописывать а создавать каждый раз её заново, предварительно удалив содержимое редактируемого файла. Пока ты свою игру доделаешь, у тебя 100 раз поменяется тип содержимого сохраняемого файла.
Furioness
Если файл текстовый, то путей добавления строк множество.
Вариант1:
Вариант 2:
Если файл текстовый, то путей добавления строк множество.
Вариант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 раз.
Код: Выделить всё
procedure TForm1.Button2Click(Sender: TObject);
var S: String;
begin
if OpenDialog1.Execute then
S := ExtractFileDir(OpenDialog1.FileName);
end;Furioness писал(а):взять определённый файл из полученного каталога и дописать в его конец определённую строку.
в FileName у тебя уже абсолютный путь до файла, делай с этой строкой все что захочешь
обрезай, добавляй и т.д. и т.п.
как обрезать до пути выше уже ответили
Не хочет он дописывать.
В 1 случае компилятору чем-то не нравится write, а во втором - нет такого типа "stringlist", а у "StrinGrid" нет функции "add"
В 1 случае компилятору чем-то не нравится write, а во втором - нет такого типа "stringlist", а у "StrinGrid" нет функции "add"
Вместо stringlist, напиши TStrings.
1.
А чем не нравится - тайна, покрытая мраком? Может быть это Вам она не нравится, раз Вы писать ошибку не хотите? Так это же Вам нужно, а не нам, зачем тогда обращаетесь сюда?
2. Ошибочка небольшая, нужно так:
Furioness писал(а):В 1 случае компилятору чем-то не нравится write
А чем не нравится - тайна, покрытая мраком? Может быть это Вам она не нравится, раз Вы писать ошибку не хотите? Так это же Вам нужно, а не нам, зачем тогда обращаетесь сюда?
2. Ошибочка небольшая, нужно так:
Код: Выделить всё
Var
st: TStringList;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;
Уже заработало, хотя вроде никаких изменений не делал
Ладно, всем спасибо, все свободны
