Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 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.056 c
1-1138198956
MegaVolt
2006-01-25 17:22
2006.02.26
Как бы сделать псевдо множественное наследование?


2-1139213846
типа прогер
2006-02-06 11:17
2006.02.26
Как закрыть БД?


1-1138264389
Lucefer
2006-01-26 11:33
2006.02.26
Передать строку через PostMessage


15-1139218284
Хинт
2006-02-06 12:31
2006.02.26
Индексация в Yandex (robots)


1-1137080441
sally
2006-01-12 18:40
2006.02.26
Многопоточность в DLL, отрисовка в приложении





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский