0 / 0 / 0
Регистрация: 07.05.2015
Сообщений: 24

Дозапись из Memo в файл через SaveDialog

27.05.2015, 23:08. Показов 2448. Ответов 17
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте! Столкнулся с такой проблемой, не могу сделать дозапись в файл через SaveDialog1. Данные считываются с Edit и отображаются в Memo. После сохранения данные перезаписываются, а нужно что бы строка дозаписывалась.


Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
procedure TForm1.N2Click(Sender: TObject);
begin
 if OpenDialog1.Execute then
      Memo1.Lines.LoadFromFile(OpenDialog1.FileName);
 end;
 
 
procedure TForm1.N3Click(Sender: TObject);
begin
  If SaveDialog1.Execute Then
Begin
Memo1.Lines.SaveToFile(SaveDialog1.FileName);
Memo1.Lines.LoadFromFile (SaveDialog1.FileName);
End;
Миниатюры
Дозапись из Memo в файл через SaveDialog  
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
27.05.2015, 23:08
Ответы с готовыми решениями:

Сохранить содержимое Memo через SaveDialog в текстовый файл
как сохранить содержание memo через savedialog в текстовый файл *.txt

Создание и запись в .txt из нескольких Memo через SaveDialog
требуется создать файл в который записать текст из нескольких Memo, при этом между текстов из Memo нужно вставить строчку так сказать...

Сохранение StringGrid через SaveDialog в ini-файл
Нид сохранить StringGrid через кнопку в ини(*.ini) файл диалогом SaveDialog!Help!!! Оч нужно! проблема с написанием обработчика для...

17
Злостный нарушитель
 Аватар для Verevkin
10878 / 5817 / 1288
Регистрация: 12.03.2015
Сообщений: 26,855
28.05.2015, 00:38
Цитата Сообщение от Trezvon Посмотреть сообщение
дозапись в файл через SaveDialog1
Диалог-то тут причём? Он в файловых операциях не участвует.
Вообще, объясни, зачем тебе именно дозапись? Может быть, стоит загрузить файл, внести изменения в данные, а затем перезаписать их поверх исходного файла, как во всех нормальных редакторах?
0
0 / 0 / 0
Регистрация: 07.05.2015
Сообщений: 24
28.05.2015, 10:07  [ТС]
Цитата Сообщение от Verevkin Посмотреть сообщение
Вообще, объясни, зачем тебе именно дозапись?
Мне нужно что бы информация которая была в нем осталась, и записалась новая
0
пофигист широкого профиля
4770 / 3206 / 862
Регистрация: 15.07.2013
Сообщений: 18,613
28.05.2015, 10:20
Цитата Сообщение от Trezvon Посмотреть сообщение
Мне нужно что бы информация которая была в нем осталась, и записалась новая
Тогда либо делай как сказал Verevkin, либо забудь о Lines.SaveToFile и используй методы работы с файлами.
0
 Аватар для Immo
692 / 509 / 238
Регистрация: 02.10.2012
Сообщений: 1,741
28.05.2015, 10:27
если очень хочется то
Delphi
1
2
3
4
5
6
7
8
9
10
var
FFile:TsrtingList;
i:integer;
begin
FFile:=TstringList.Create;
 if OpenDialog1.Execute then
      FFile.LoadFromFile(OpenDialog1.FileName);
for i:=0 to ffile.count-1 do 
  memo1.lines.add(ffile.strings[i]);
freeandnill(ffile);
Добавлено через 1 минуту
а дозаписать в файл, чет не так прочитал, ну смысл останется тот же, грузишь файл в стринг лист, добавляешь в него нужные строки и сохраняешь
1
0 / 0 / 0
Регистрация: 07.05.2015
Сообщений: 24
28.05.2015, 10:35  [ТС]
Цитата Сообщение от Immo Посмотреть сообщение
а дозаписать в файл, чет не так прочитал, ну смысл останется тот же, грузишь файл в стринг лист, добавляешь в него нужные строки и сохраняешь
не совсем понял как сделать
0
Злостный нарушитель
 Аватар для Verevkin
10878 / 5817 / 1288
Регистрация: 12.03.2015
Сообщений: 26,855
28.05.2015, 10:58
Цитата Сообщение от Trezvon Посмотреть сообщение
не совсем понял как сделать
ну типа
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
procedure TForm100500.N100500Click(Sender: TObject);
var
  FFile:TSrtingList;
begin
  if not SaveDialog.Execute()
    then Exit;
    
  FFile:= TStringList.Create();
  try
    try
      FFile.LoadFromFile(SaveDialog.FileName);
      FFile.AddStrings(Memo.Lines);
      FFile.SaveToFile(SaveDialog.FileName);
      Memo.Clear();
    except on E: Exception do
             begin
               MessageBox(0, PChar(E.Message),
                          PChar('fuckit x32!'),
                          mb_Ok + mb_IconError);
    end;     end;
  finally
    FFile.Free();
  end;
end;
Только нафига такой подход?
ВНИМАНИЕ!
УВАГА!!
АХТУНГ!!!
ААТТЕНШН!!!!

Shit-code detected!
Код не отлаживал. Писал на заборе!
1
0 / 0 / 0
Регистрация: 07.05.2015
Сообщений: 24
28.05.2015, 11:10  [ТС]
Цитата Сообщение от Verevkin Посмотреть сообщение
Код не отлаживал. Писал на заборе!
Спасибо! Код почти не нуждался в отладке. Выложу на всякий случай уже отлаженный код

Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
procedure TForm1.Button3Click(Sender: TObject);
 
var
  FFile:TstringList;
begin
  if not SaveDialog1.Execute()
    then Exit;
 
  FFile:= TStringList.Create();
  try
    try
      FFile.LoadFromFile(SaveDialog1.FileName);
      FFile.AddStrings(Memo1.Lines);
      FFile.SaveToFile(SaveDialog1.FileName);
      Memo1.Clear();
    except on E: Exception do
             begin
               MessageBox(0, PChar(E.Message),
                          PChar('fuckit x32!'),
                          mb_Ok + mb_IconError);
    end;     end;
  finally
    FFile.Free();
  end;
end;
0
 Аватар для Arcor
5709 / 2300 / 466
Регистрация: 20.11.2009
Сообщений: 7,721
Записей в блоге: 1
28.05.2015, 11:16
Цитата Сообщение от Trezvon Посмотреть сообщение
Выложу на всякий случай уже отлаженный код
, а чем он отличатся от кода Verevkin'а ???? )) названием формы только?
1
28.05.2015, 11:26

Не по теме:

Цитата Сообщение от Arcor
а чем он отличатся от кода Verevkin'а ???? )) названием формы только?
он "отлажен" :D

0
57 / 57 / 37
Регистрация: 11.05.2015
Сообщений: 196
28.05.2015, 11:53
Хм... как-то странно, столько людей и пошли не понятно каким путем... Парню надо просто добавлять записи в файл.
Delphi
1
2
3
4
5
6
7
8
9
procedure AddRec(Rec, FileName: String);
var
F: TextFile;
begin
AssignFile(F,FileName);
Append(F);
WriteLn(Rec);
CloseFile(F);
end;
1
 Аватар для Arcor
5709 / 2300 / 466
Регистрация: 20.11.2009
Сообщений: 7,721
Записей в блоге: 1
28.05.2015, 11:57
Цитата Сообщение от Rasomaha Посмотреть сообщение
Хм... как-то странно, столько людей и пошли не понятно каким путем... Парню надо просто добавлять записи в файл.
тебя все ждали )
Цитата Сообщение от Rasomaha Посмотреть сообщение
Delphi
1
WriteLn(Rec);
Ln лишнее, и название файла забыл указать в котоырй писать
Delphi
1
Write(F, Rec);
0
28.05.2015, 11:57

Не по теме:

Цитата Сообщение от Rasomaha Посмотреть сообщение
Парню надо просто добавлять записи в файл.
Некоторым от такого кода хочется застрелиться. Вот мы о них и заботимся. :)

0
57 / 57 / 37
Регистрация: 11.05.2015
Сообщений: 196
28.05.2015, 12:05
Цитата Сообщение от Arcor Посмотреть сообщение
Ln лишнее
Ln, если мне память не изменяет, ставит после записи конец записи (в данном случае в конце строки ставится знак абзаца). А она мне всё таки изменяет.
Цитата Сообщение от Arcor Посмотреть сообщение
и название файла забыл указать в который писать
0
 Аватар для Arcor
5709 / 2300 / 466
Регистрация: 20.11.2009
Сообщений: 7,721
Записей в блоге: 1
28.05.2015, 12:10
на счет ln тут и я не прав , это в типизированный файл нельзя так делать , а в текстовый все таки да, оно добавляет перенос на новую строку
0
Злостный нарушитель
 Аватар для Verevkin
10878 / 5817 / 1288
Регистрация: 12.03.2015
Сообщений: 26,855
28.05.2015, 13:33
Цитата Сообщение от Arcor Посмотреть сообщение
Парню надо просто добавлять записи в файл.
Действительно, чойта мы?...
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
procedure AddRec(const Rec, FileName: String);
var
  F: TFileStream;
begin
  if Rec = ''
    then Exit;
    
  F:= TFileStream.Create(FileName, fmOpenReadWrite);
  try
    F.Position:= F.Size;
    F.WriteBuffer(Rec[1], Length(Rec));
  finally
    F.Free();
  end;
end;
0
 Аватар для Arcor
5709 / 2300 / 466
Регистрация: 20.11.2009
Сообщений: 7,721
Записей в блоге: 1
28.05.2015, 13:43
Verevkin, а чего это ты меня цитируешь? Я это писал? оО
0
Злостный нарушитель
 Аватар для Verevkin
10878 / 5817 / 1288
Регистрация: 12.03.2015
Сообщений: 26,855
28.05.2015, 14:00
Цитата Сообщение от Arcor Посмотреть сообщение
а чего это ты меня цитируешь? Я это писал? оО
Обшибся, сорри.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
28.05.2015, 14:00
Помогаю со студенческими работами здесь

Как сохранить файл записей через SaveDialog?
создаю файл записей, но как его сохранить с помощью savedialog? может потоки как то использовать? Допустим, открыл файл 001.dat и в нем...

Как сохранить INI файл со своим именем через SaveDialog?
Подскажите, как сохранить INI файл со своим именем через SaveDialog. Можно не в папку программу, а в любую папку? procedure...

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

Ввод вещественных чисел через Memo. Запись в файл
В данной процедуре создается файл. Пользователь вводит последовательность вещественных чисел в Memo1. Новая строка-новое число ...

После Memo нельзя открыть этот же файл через AssignFile
После того, как файл открылся через Memo, а потом сохранился: memos1:=TMemo.Create(Self); ... ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
18
Опции темы

Новые блоги и статьи
Рефакторинг программы уравнивания.
Massaraksh7 26.05.2026
Пример по предыдущей записи в блоге. Но, надо заметить, что, во-первых, там оптимизация не только математики, но и работы с базой данных, и с графами, а во-вторых, это ещё не всё.
Использование TThread в Lazarus для математических вычислений.
Massaraksh7 25.05.2026
Производя рефакторинг своих программ на предмет ускорения их работы, обратил внимание на такой аспект, как сокращение времени матвычислений. Дело в том, что приходится работать с большими матрицами. . .
Модель здравосохранения 18. Чем здоровее работник, тем быстрее выгорает
anaschu 24.05.2026
Имитационная модель корпоративного здравоохранения: что показывает математика Сегодня в модели рабочего коллектива на AnyLogic появились три новые механики — выгорание через накопленную усталость,. . .
Модель здравосохранения 17. Планы на выгорание
anaschu 23.05.2026
Вот конкретная схема реализации: В классе Работник добавить: накопленнаяУсталость — растёт каждый час работы, снижается в перерывы и болезни коэффициентПрезентеизма — снижает продуктивность. . .
Изменение цветов в палитре gif файла aka фавикона
russiannick 23.05.2026
Изменение цветов в палитре gif файла, юзаемого как фавиконка в составе html-файла, помещенная в base64, средствами нативного Java Script, навеянное сном в майский день. Для работы необходим браузер,. . .
Модель здравосохранения 16. Слишком хорошие и здоровые сотрудники уходят, недовольные зарплатой
anaschu 23.05.2026
Отладка увольнений и настройка производительности Сегодня во второй половине дня разобрались с механикой увольнений и настроили коэффициент сложности заданий. Вот что было сделано. . . .
Как я стал коммунистом))) Модель сохранения здоровья сотрудников, запись блога номер 15
anaschu 23.05.2026
Внезапно хорошее здоровье сотрудников не нужно капиталистам?))
Модель здравоСохранения 15. Как мы чинили AnyLogic модель рабочего коллектива: сочленение диаграммы состояний болезней и поломок в ресурспул
anaschu 23.05.2026
Как мы чинили AnyLogic модель рабочего коллектива Сегодня разобрались с пятью багами, из-за которых модель либо падала с ошибкой, либо давала совершенно бессмысленные результаты. Каждый баг был. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru