Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 05.11.2013, 00:12
vortur vortur вне форума
Прохожий
 
Регистрация: 02.11.2013
Сообщения: 5
Версия Delphi: delphi 7
Репутация: 10
По умолчанию переход строки в Memo

Записываю в компонент Memo текст из файла.
В файле текст идёт доупстим тремя строка но в Memo он выводиться одной.
Попробовал два варианта перевода строки но компилятор пишет access violation at address. Вопрос как сохранить структуру текста или что я делаю не так?

Записываю так же через Memo. При записи 1-ой строки всё хорошо. Вторую строку тоже могу ввести, но если начинаю сразу писать (курсор по базе на новой строке). Если использую энтер то при последующем обращении выдаёт ошибку, выводит текст но уже не даёт сохранить новое значение.

Код:
while s[1]<>'#' do
    begin
        Memo1.text:=memo1.Text+s;
        memo1.Text:=memo1.text+#13#10;
        readln(f,s);
    end;

Код:
 while s[1]<>'#' do
    begin
        Memo1.lines.Add(s);
        readln(f,s);
    end;
Записываю так
Код:
procedure TForm3.Button1Click(Sender: TObject);
var f,f2:textfile;
s:string;
prov:boolean;
begin
assignfile(f,'table\czt.txt');
reset(f);
assignfile(f2,'table\temp.txt');
rewrite(f2);
prov:=true;
while not eof(f) do
begin
    readln(f,s);
    writeln(f2,s);
    if copy(s,2,10)=datetostr(data) then
    begin
    writeln(f2,memo1.text);
    writeln(f2,'#');
    prov:=false;
    readln(f,s);
    while s[1]<>'#' do
    readln(f,s);
    end;
end;
if prov=true then
begin
writeln(f2,'#'+datetostr(data));
writeln(f2,memo1.text);
writeln(f2,'#');
end;
closefile(f);
closefile(f2);
deletefile('table\czt.txt');
renamefile('table\temp.txt','table\czt.txt');
form3.Hide;
form1.show;
end;

содержимое файла после этих действий
#19.11.2013
1
2

#

p.s. За совет как оптимизировать вставку текста посередине файла не путём записи в левый файл тоже спасибо))
Ответить с цитированием
  #2  
Старый 05.11.2013, 00:29
Аватар для Bargest
Bargest Bargest вне форума
Профессионал
 
Регистрация: 19.10.2010
Адрес: Москва
Сообщения: 2,390
Версия Delphi: XE3/VS12/FASM
Репутация: 14665
По умолчанию

Код:
Memo1.LoadFromFile(...);
Memo1.SaveToFile(...);
__________________
jmp $ ; Happy End!
The Cake Is A Lie.
Ответить с цитированием
  #3  
Старый 05.11.2013, 00:36
vortur vortur вне форума
Прохожий
 
Регистрация: 02.11.2013
Сообщения: 5
Версия Delphi: delphi 7
Репутация: 10
По умолчанию

Я так понимаю что в таком случае чтение будет всего файла. А мне нужно только часть файла от определённого # до следующего #
Ответить с цитированием
  #4  
Старый 05.11.2013, 00:41
vortur vortur вне форума
Прохожий
 
Регистрация: 02.11.2013
Сообщения: 5
Версия Delphi: delphi 7
Репутация: 10
По умолчанию

Проблему решил. Оказывается не так понял. Он ругался только в том случае если оставались пустые строки. Которые автоматом появлялись при использовании энтера
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 07:36.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter