Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.06.27;
Скачать: CL | DM;

Вниз

Тот же текстовый редактор. Теперь сохранение :-)   Найти похожие ветки 

 
Apocalepse ©   (2004-06-11 20:45) [0]

Товарищи мастера я все по той же теме :-)
Проблеммка собственно в том как теперь сохранять изменения в файле!
То есть сохранение изменений в файле открытых уже в редакторе то
конечно не проблема. Но вот я не могу понять как теперь сохранить файл
открытый самим редактором через вот тот код:
if (ParamCount >= 1) and FileExists(ParamStr(1)) then
Memo.Lines.LoadFromFile(ParamStr(1));

На кнопке "сохранить" у меня висит
Memo1.Lines.SaveToFile(FName);
Я дописываю к тому
if (ParamCount >= 1) and FileExists(ParamStr(1)) then
Memo.Lines.SaveToFile(ParamStr(1));

Но ничего не выходит, все компилится. Но изменения не сохраняются. Подскажите что не так?


 
Подкрадуха ©   (2004-06-11 21:04) [1]

Может, не Memo, а Memo1, если не менял имена по умолчанию...
Хотя вряд-ли.


 
Anatoly Podgoretsky ©   (2004-06-11 21:07) [2]

Что там ParamStr(1))
А как ты проверяешь что ничего не происходит, может стоит воспользоваться клавишей Win+F


 
Anatoly Podgoretsky ©   (2004-06-11 21:17) [3]

Да и какая ошибка вычкакивает?
Ты нам скажешь или нам соамим придумать?


 
Подкрадуха ©   (2004-06-11 21:25) [4]

if (ParamCount >= 1) and FileExists(ParamStr(1)) then
Memo.Lines.LoadFromFile(ParamStr(1));

Memo1.Lines.SaveToFile(FName);

if (ParamCount >= 1) and FileExists(ParamStr(1)) then
Memo.Lines.SaveToFile(ParamStr(1));

Всё-таки, кажется проблема тут в именах...
Хотя, если компилится нормально, то очень странно.
Какой у тебя нэйм у мемо? То Memo, то Memo1...


 
Anatoly Podgoretsky ©   (2004-06-11 21:29) [5]

Подкрадуха ©   (11.06.04 21:25) [4]
А почему бы не быть обеим?


 
Подкрадуха ©   (2004-06-11 21:43) [6]

[5]
Я этого и не отрицаю, но читается файл в одного мемо, а сохраняется из другого. Я даже предположу (настрою, так сказать свой телепатический модуль), что в начале файл читается сразу в оба мемо, но потом пишется измененное мемо вначале и потом перезаписывается вторым (не измененным) мемо. Может отсюда грабли ростут?


 
Anatoly Podgoretsky ©   (2004-06-11 21:50) [7]

Подкрадуха ©   (11.06.04 21:43) [6]
Нет сохраняется в обеих, но только не известно что в FName и в ParamStr(1)


 
Подкрадуха ©   (2004-06-11 21:54) [8]

Угу, чего ж тут гадать, если не видно, что за ошибка или хотя бы полный код этой функции/процедуры.
Подождём...


 
Apocalepse ©   (2004-06-11 22:10) [9]

Да моя опечатка! Там имена то мои у Memo но в коде допустим пусть они будут кака Memo1. Все компилится нормально но при сохранении файла открытого способом
if (ParamCount >= 1) and FileExists(ParamStr(1)) then
Memo1.Lines.SaveToFile(ParamStr(1));

Возникает ошибка:
Cannot Create File "". Системе неудается найти указаный путь.
Ну короче кода сохранения вообще нет как будь то.


 
Anatoly Podgoretsky ©   (2004-06-11 22:23) [10]

Все ясно у тебя неправильный путь.
Подробности вроде мы никогда не получим, ну и бог ним, поработаем тогда переводчиками.


 
Apocalepse ©   (2004-06-11 22:56) [11]

Какие вам еще подробности?
Ну вот код висящий на кнопке сохранения
procedure Tmain.saveClick(Sender: TObject);
begin
Text.Lines.SaveToFile(FName);
if (ParamCount > 1) and FileExists(ParamStr(1)) then
Text.Lines.SaveToFile(ParamStr(1));
end;

На форе есть OpenDialog и SaveDialog

Вот так выглядит кнопка "сохранить как"
procedure Tmain.save_asClick(Sender: TObject);
begin
SaveDialog.FileName:=FName;
if SaveDialog.Execute
then begin
FName:=SaveDialog.FileName;
Text.Lines.SaveToFile(FName);
end;
end;

Text-имя поля Memo
FName-OpenDialog(FileName) и SaveDialog(FileName)


 
KilkennyCat ©   (2004-06-11 23:00) [12]

Может быть, я полный ЛМД, но что такое FName?


 
Apocalepse ©   (2004-06-11 23:01) [13]

Я не спрашиваю про сохранение файла открытого OpenDialog или сохраненным SaveDialog
Мне надо узнать что нужно дописать к кнопке "сохранить" чтобы сохранить изменения в файле открытым моей программой. Т.е. кодом
procedure Tmain.FormCreate(Sender: TObject);
begin
if (ParamCount > 1) and FileExists(ParamStr(1)) then
Text.Lines.LoadFromFile(ParamStr(1));

if rb_html.Checked = true then
begin
Text.SyntaxStyles:=stl_html; //Это относится к синтаксису.
end;    
end;


 
KilkennyCat ©   (2004-06-11 23:03) [14]

Повторю свой вопрос... что сие - FName? Чего ему присваивается при открытии с параметрами командной строки?


 
Apocalepse ©   (2004-06-11 23:03) [15]

FNmae объявляется вот тут
SaveDialog.FileName:=FName;
if SaveDialog.Execute
then begin
FName:=SaveDialog.FileName;

и тут
FName:=OpenDialog.FileName;
Это переменная являющаяся по сути FileName Open и Save Dialog-ов


 
KilkennyCat ©   (2004-06-11 23:05) [16]

замечательно. но я спрашивал, что ей присваивается, когда открывается с Text.Lines.LoadFromFile(ParamStr(1)) ????


 
Apocalepse ©   (2004-06-11 23:05) [17]

Блин опечетался ^^
> FNmae объявляется вот тут
FName объявляется вот тут - так надо было написать :-)


 
KilkennyCat ©   (2004-06-11 23:06) [18]

пофиг опечатка.
где код типа такого:
FName := ParamStr(1); ?


 
Apocalepse ©   (2004-06-11 23:08) [19]

ээээээ вроде ничего... Я что то путанулся уже. Я в Дельфи навичек. Может скажеш все же конкретнее как сохранить? Ты ведь знаеш :-)


 
Apocalepse ©   (2004-06-11 23:11) [20]

ООО я кажеться понял! Надо при открытии с Text.Lines.LoadFromFile(ParamStr(1)) ???? Присвоить ей значение и все будет ок! Только как его присвоить? Что присвоить? Что вообще есть (ParamStr(1)) я честно говоря не понял....


 
Apocalepse ©   (2004-06-11 23:12) [21]


> пофиг опечатка.
> где код типа такого:
> FName := ParamStr(1); ?

(Меня пробирает смех над собой) Его нет :-( Какой же я дурак!


 
KilkennyCat ©   (2004-06-11 23:13) [22]

Знаю.
Правило первое - перед использованием переменной, ей надо чего-то присвоить. Иначе - неизвестно, чего в ней есть. При открытии диалогами FName чего-то там нормально получает, после чего ее корректно обрабатывают сэйвы. При открытии через параметр, она, судя по всему, ничего не получает, в ней либо ниль, либо каша, однако, при сохранении она используется!
Странно, что компилятор не предупредил...

Вообщем, должно быть так:

procedure Tmain.FormCreate(Sender: TObject);
begin
if (ParamCount > 1) and FileExists(ParamStr(1)) then begin
 FName := ParamStr(1);
 Text.Lines.LoadFromFile(FName);
end;
end;


 
KilkennyCat ©   (2004-06-11 23:14) [23]

ну, вот, успел раньше меня :)


 
Apocalepse ©   (2004-06-11 23:18) [24]

Мои подстаканники дребезжат! Спасибо тебе!!! Огромное. А кто упел раньше тебя и что успел? Ну да ладно хорош флудить ато замодерируют нафиг :-). Еще раз Большое спасибо!


 
KilkennyCat ©   (2004-06-11 23:18) [25]


> Apocalepse ©   (11.06.04 23:11) [20]
> присвоить? Что присвоить? Что вообще есть (ParamStr(1))
> я честно говоря не понял....


При запуске исполняемого файла с параметрами (например: format c: ), то программе передаются параметры, в нашем случае - с:
Даже если перевести ParamStr то получится ПараметровСтрока



Страницы: 1 вся ветка

Текущий архив: 2004.06.27;
Скачать: CL | DM;

Наверх




Память: 0.51 MB
Время: 0.052 c
14-1086576248
Думкин
2004-06-07 06:44
2004.06.27
С днем рождения! 7 июня


1-1086697688
riko
2004-06-08 16:28
2004.06.27
Подскажите пожалуйста: Treeview&TreeNode + array


1-1087150209
iudjen
2004-06-13 22:10
2004.06.27
drag drop


3-1086156162
Sectey
2004-06-02 10:02
2004.06.27
Скорость работы ХП в MSSQL.


14-1085475728
McSimm
2004-05-25 13:02
2004.06.27
DOS атака.





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский