Прошу совета.
Есть Мемо на форме. Нужно в файле хранить историю того, что там набиралось. Подскажите как лучше.
Текстовый не совсем подходит, ибо само Мемо может состоять из отдельных строк.
Модератор: Модераторы
GAMER писал(а):Текстовый не совсем подходит
Vadim писал(а):GAMER писал(а):Текстовый не совсем подходит
А какой подходит, графический?
TMemo.Lines.SaveToFile();
type
TRecord = record
byte: array[0..255] of Char;
end;
var
j: Integer;
D: TRecord;
s: TFileStream;
begin
s:=TFileStream.Create('Имя файла',fmCreate);
for j:=0 to Memo.Lines.Count-1 do
begin
FillByte(D,SizeOf(D),0);
D.byte:=Copy(Memo.Lines[j],1,255);
s.Write(D,SizeOf(D));
end;
s.Free;
end;
Brainenjii писал(а):не, как я понял - нужно сохранять не всё мемо, а только то что изменилось ^_^ В смысле, чтобы можно было определить - какие куски memo когда изменялись ^_^
Vadim писал(а):Тогда пусть вопросивший расскажет свою конкретную проблему, потому что тип файла - это уже армянское радио.
GAMER писал(а):Хочу продемонстрировать клиент для работы с MySQL
Vadim писал(а):GAMER писал(а):Хочу продемонстрировать клиент для работы с MySQL
Ну так бы сразу и сказали. Нет ничего проще.
Создайте дополнительную таблицу с двумя полями - datetime и varchar (или blob). Datetime сделаете со значением по умолчанию как текущие дата-время. При каждом выполнении блока команд добавляете их в поле таблицы varchar.
[ЗДЕСЬ_ДАТА_И_ВРЕМЯ]
cmd1="строка1"
cmd2="строка2"
cmd3="строка3"
[ЗДЕСЬ_ДАТА_И_ВРЕМЯ_2]
cmd1="строка4"
cmd2="строка5"
cmd3="строка6"
var
ini:TiniFile;
...
// пишем в файл
// 'General', 'Studs' это блоки/секции (то что в [])
// Fdatabase, Ffacf строковые переменные
// 'Database', 'FacultyFilter' ключи
Ini := TIniFile.Create(ChangeFileExt(Application.ExeName,'.ini'));
try
ini.WriteString('General','Database',Fdatabase);
ini.WriteString('Studs','FacultyFilter',Ffacf);
ini.WriteString('Studs','SpecFilter',Fspecf);
finally
Ini.Free;
end;
// читаем
Ini := TIniFile.Create(ChangeFileExt(Application.ExeName,'.ini'));
try
Fdatabase:=ini.ReadString('General','Database','');
Ffacf:=ini.ReadString('Studs','FacultyFilter','');
Fspecf:=ini.ReadString('Studs','SpecFilter','');
finally
Ini.Free;
end;
GAMER писал(а):И не все сервера дают разрешение на создание таблиц.
GAMER писал(а):Примерчик для Tinifile не завалялся случайно?
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 48