Форум: "Начинающим";
Текущий архив: 2006.02.26;
Скачать: [xml.tar.bz2];
ВнизСохранение Найти похожие ветки
← →
Вячеслав Бессонов (2006-02-05 19:43) [0]Существует Memo.
Как Memo.Text сохранить с помощью SaveDialog?
← →
Вячеслав Бессонов (2006-02-05 19:48) [1]Можно ли это реализовать таким способом:
SaveDialog.Execute;
Assign(F,SaveDialog.NameFile);
Rewrite(f);
запсиь в файл
сохранение с помощью диалога?
← →
Glex © (2006-02-05 19:54) [2]if SaveDialog1.Execute then
Memo1.Lines.SaveToFile(SaveDialog1.FileName);
← →
Вячеслав Бессонов (2006-02-05 20:02) [3]Спасибо. Нет совсем времени в справке искать.
← →
Glex © (2006-02-05 20:05) [4]Всегда пожалуйста)
Но в справке это найти было бы, пожалуй, быстрее: Предыдущий пост - точная цитата из Delphi Help)
← →
Вячеслав Бессонов (2006-02-05 20:54) [5]if SaveDialog1.Execute then
Memo1.Lines.SaveToFile(SaveDialog1.FileName);
а открыть можно таким же способом?
или нужно использовать AssignFile, Reset?
← →
Джо © (2006-02-05 21:08) [6]> [5] Вячеслав Бессонов (05.02.06 20:54)
> а открыть можно таким же способом?
Лучше, все-таки, открыть Справку.
← →
Desdechado © (2006-02-05 21:12) [7]> Как Memo.Text сохранить с помощью SaveDialog?
цитата из орешника
← →
Gydvin © (2006-02-05 21:16) [8]А здесь что развод?
← →
Вячеслав Бессонов (2006-02-05 21:17) [9]s:=ExtractFileName(opd.FileName);
Assign(F, s);
Reset(F); - выдается ошибка
← →
Desdechado © (2006-02-05 21:19) [10]> Reset(F); - выдается ошибка
вот упрямый
цитируй текст ошибки
← →
Вячеслав Бессонов (2006-02-05 21:21) [11]Assign(f,s):
Incompatible types: "TPersistent" and "Text"
← →
Anatoly Podgoretsky © (2006-02-05 21:26) [12]Ошибка выдается не здесь, а выше. Ты пытаешься вызвать метод Assign
← →
Desdechado © (2006-02-05 21:26) [13]а что есть F ? это должен быть файловый дельфийский тип
← →
Вячеслав Бессонов (2006-02-05 21:33) [14]var
F: TextFile;
а как нужно вызывать?
можно это как то сопоставить с OpendDialog
← →
Gydvin © (2006-02-05 21:45) [15]var
f:textfile;
s:string;
begin
if (savedialog1.Execute)and(savedialog1.filename<>"")then begin
assignfile(f,savedialog1.filename);
rewrite(f);
s:=memo1.text;
writeln(f,s);
closefile(f);
end;
end;
← →
Gydvin © (2006-02-05 21:47) [16]можно это как то сопоставить с OpendDialog
также как и savedialog да е мае, как так можно ведь все естьв справке, ну или у гугла спросить он многое знает.
Бррбр
← →
Zeqfreed © (2006-02-05 21:48) [17]Хорошо, я постараюсь объяснить по-порядку :)
Компоненты TOpen/SaveDialog предназначены исключительно для отображения стандартных диалоговых окон для выбора файла для открытия/сохранения. Они ни каким образом не связаны с самим открытием и сохранием, они лишь предоставляют пользовательский интерфейс для выбора файлов. После того, как пользователь выбирает файл используя предоставленный интерфейс, можно использовать полученное имя файла, сохраняющееся в поле FileName этих компонентов, для любых операций. Можно даже записывать в тот файл, который пользователь выбрал в TOpenDialog и читать из файла, выбранного в TSaveDialog. Таким образом, выражение «сохранить используя TSaveDialog» имеет довольно сомнительный смысл. Для сохранения можно использовать WinAPI-функции или ф-ции из VCL, по желанию.
← →
Вячеслав Бессонов (2006-02-05 21:49) [18]Понял. У меня была ошибка: AssignFile
Спасибо.
← →
Вячеслав Бессонов (2006-02-05 21:57) [19]opd.Execute;
AssignFile(F,opd.FileName);
Reset(F);
while not Eoln(F) do begin read(F,s); end;
mm.Text:=s; - неправильно?
← →
Gydvin © (2006-02-05 22:07) [20]неправильно
AssignFile(F,opd.FileName);
while not Eof(F) do begin
readln(F,s);
mm.add(s);
end;
правильно
← →
Gydvin © (2006-02-05 22:11) [21]sorry
mm.add(s);
to
mm.lines.add(s);
← →
Вячеслав Бессонов (2006-02-05 22:20) [22]но ведь mm.lines.add(s) - добавит одну строку?
← →
Вячеслав Бессонов (2006-02-05 22:30) [23]извини, не увидел, но, все равно это не работает, ошибка
← →
Gydvin © (2006-02-05 22:34) [24]а цикл тебе начто
while not Eof(F) do begin
обьясняю подробно
функция read читает до конца 1(первой)строки тоесть до признака конца строки и все
функция readln может перескакивать на следующию строку и так до конца файла тоесть когда у тебя выполняется цикл из [20] при каждом новом проходе петли в переменную s заносится следующая строка (1,2 и т.д) которая в свою очередь добавляется в mm методом add
← →
Gydvin © (2006-02-05 22:36) [25]Вячеслав Бессонов (05.02.06 22:30) [23]
я пас
← →
Вячеслав Бессонов (2006-02-05 22:47) [26]OpenDialog.FileName - это же имя с путем
следовательно его надо обрезать
← →
sniknik © (2006-02-05 23:03) [27]это не "развод", это представители FastReport на терпимость участников тестируют, задавая идиотские вопросы и полнустью игнорируя ранние советы (под дурачка косят)... ;)
> ... но, все равно это не работает, ошибка
уважаемый представитель... сколько раз вам нужно повторить, что слово "ошибка" в отличие от текста ошибки ничего не значит?
ну чтобы вам там галочку в анкете поставить. скажите сразу, и покончим с этим, разом хоть 178 раз повторю...
> цитируй текст ошибки
> цитируй текст ошибки
> цитируй текст ошибки
> цитируй текст ошибки
>цитируй текст ошибки
>цитируй текст ошибки
........
(пока меньше)
← →
TUser © (2006-02-06 05:29) [28]if OpenDialog1.Execute then
Memo2.Lines.LoadFromFile(OpenDialog1.FileName);
Наверное, тоже цитата из справки.
← →
Gydvin © (2006-02-06 05:46) [29]Нет я хочу FastReport!!!!!!!! $)))
Вячеслав Бессонов (05.02.06 22:47) [26]
нет это и есть полное имя файла;
а перед [20] поставь
if not(fileexists(opendialog1.filename)) then exit;
← →
Gydvin © (2006-02-06 05:50) [30]Как мой телепатор подсказывает, открывать несуществующий файл имхо не быть хорошо.
← →
Вячеслав Бессонов (2006-02-06 10:45) [31]Хотелось бы узнать, как написать try..except для Memo2.Lines.LoadFromFile(OpenDialog1.FileName);
что должно быть в except?
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2006.02.26;
Скачать: [xml.tar.bz2];
Память: 0.51 MB
Время: 0.308 c