Форум программистов, компьютерный форум, киберфорум
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
0 / 0 / 0
Регистрация: 11.06.2014
Сообщений: 27

Чем лучше воспользоваться для открытия документа и его пересохранения?

22.06.2014, 21:32. Показов 1010. Ответов 12
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
парни нужно выбрать(OpenDialog) документ , а потом его пересохранить(SaveDialog) в другое место и под другим названием . на что его кидать(ЧТобы хотя бы названия документа показывал)? OleContainer использовал не прокатил (не правильно сохраняет теряет киррилицу документа) . подскажите чем воспользоваться.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
22.06.2014, 21:32
Ответы с готовыми решениями:

Чем лучше воспользоваться для разработки простой игры?
Всем привет! Недавно в голову пришла в голову написать какую-нибудь простую игру типа арканоида или шашек. Соответственно, возник вопрос:...

Запись документа Word после открытия его в C++ Builder
Всем привет! Нарисовалась такая проблема: Открываю документ Word с помощью c++ Buldera например от сюда d:\doc\test.doc. Все нормально...

Как защитить документ от копирования текста и пересохранения документа?
Нужно сделать так,чтобы документ можно было открыть и прочитать текст,но его нельзя было бы копировать,вырезать или пересохранять...

12
157 / 300 / 47
Регистрация: 14.08.2012
Сообщений: 2,578
22.06.2014, 21:41
Edit, Label, Memo и т.п.
0
0 / 0 / 0
Регистрация: 11.06.2014
Сообщений: 27
22.06.2014, 22:03  [ТС]
memo не подходит . он не пишет документ . а ироглифы выводит
0
157 / 300 / 47
Регистрация: 14.08.2012
Сообщений: 2,578
22.06.2014, 22:13
Цитата Сообщение от Valerion Посмотреть сообщение
memo не подходит . он не пишет документ . а ироглифы выводит
Может тогда лучше будет его просто копировать и переименовать. Функции CopyFile и RenameFile.
Вот код:
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
var
FileName: String; 
NewFileName: String;
NewPath: String; 
 
//кнопка "Пересохранить"
begin
if OpenDialog1.Execute=false then exit;
FileName:=OpenDialog1.Filename;
if SaveDialog1.Execute=false then exit;
NewPath:=ExtractFilePath(SaveDialog1.FileName);
CopyFile(PChar(FileName), PChar(NewPath + '/' + ExtractFileName(FileName)); //копируем
NewFileName:=NewPath + '/Новое имя файла' + ExtractFileExt(FileName);
RenameFile(PChar(NewPath + '/' + ExtractFileName(FileName),PChar(NewFileName)); //переименовываем 
ShowMessage('Готово');
end;
0
0 / 0 / 0
Регистрация: 11.06.2014
Сообщений: 27
22.06.2014, 22:19  [ТС]
Вот моя процедура сохранения через олекнтрайнер. Мои действия какие вмсето оле ставлю мемо и прописываю ваш код?
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
procedure TForm2.btn3Click(Sender: TObject);
var
   FName,xxx0,xxx1: string;
 begin
    dlgSave1.InitialDir := GetCurrentDir;
           if dlgSave1.Execute
  then ShowMessage('File : '+dlgsave1.FileName)
  else ShowMessage('Save file was cancelled');
  xxx0:= '.doc';
  xxx1:= '.odt';
   if dlgSave1.FilterIndex=1 then
olcntnr1.SaveAsDocument(dlgSave1.FileName + xxx0);
 
 if dlgSave1.FilterIndex=2 then
olcntnr1.SaveAsDocument(dlgSave1.FileName + xxx1);
 
     olcntnr1.Close;
 end;
0
157 / 300 / 47
Регистрация: 14.08.2012
Сообщений: 2,578
22.06.2014, 22:31
Цитата Сообщение от Valerion Посмотреть сообщение
Вот моя процедура сохранения через олекнтрайнер. Мои действия какие вмсето оле ставлю мемо и прописываю ваш код?
Нафига ты документ открываешь у себя? Если надо, чтобы программа показывала, то что сделала, то пропиши это действие в memo в виде текста. Вот мой измененный код:
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
26
27
28
29
30
31
 
//кнопка "Пересохранить"
var
FileName: String; 
NewFileName: String;
NewPath: String; 
begin
Memo1.Lines.Clear;
Memo1.Lines.Add('Просим вас выбрать документ для копирования и переименования');
if OpenDialog1.Execute=false then 
begin
Memo1.Lines.Add('Вы отказались'); //:D
exit;
FileName:=OpenDialog1.Filename;
Memo1.Lines.Add('Вы выбрали файл:' + FileName);
Memo1.Lines.Add('Просим вас выбрать место и название файла в которое он будет копирован и переименован');
if SaveDialog1.Execute=false then 
begin
Memo1.Lines.Add('Вы всё нам испортили'); //:D
exit;
end;
NewPath:=ExtractFilePath(SaveDialog1.FileName);
Memo1.Lines.Add('Вы выбрали:' + SaveDialog1.FileName);
CopyFile(PChar(FileName), PChar(NewPath + '/' + ExtractFileName(FileName)); //копируем
Memo1.Lines.Add('Мы копировали файл в ' + NewPath + '/' + ExtractFileName(FileName));
NewFileName:=NewPath + '/' + ExtractFileName(SaveDialog1.FileName); //формируем новое имя файла
RenameFile(PChar(NewPath + '/' + ExtractFileName(FileName),PChar(NewFileName)); //переименовываем
Memo1.Lines.Add('Мы переименовали скопированное в ' + ExtractFileName(NewFileName));
Memo1.Lines.Add('Мы закончили все действия, на которые нас запрограммировали');  
ShowMessage('Готово');
end;
Почитай. У программистов всё таки есть чувство юмора.
0
Эксперт Pascal/Delphi
 Аватар для droider
4882 / 2819 / 862
Регистрация: 04.10.2012
Сообщений: 10,248
22.06.2014, 23:08
Цитата Сообщение от Valerion Посмотреть сообщение
dlgSave1.InitialDir := GetCurrentDir;
я писал, что GetCurrentDir здесь на фиг не нужна.

Цитата Сообщение от Valerion Посмотреть сообщение
if dlgSave1.FilterIndex=1 then
olcntnr1.SaveAsDocument(dlgSave1.FileNam e + xxx0);
if dlgSave1.FilterIndex=2 then
olcntnr1.SaveAsDocument(dlgSave1.FileNam e + xxx1);
Зачем писать xxx1 и т.д.? Расширение, если использовать фильтр, добавляется автоматически! Показывал же.
Суть сохранения в нескольких форматах Вы не усвоили.
0
0 / 0 / 0
Регистрация: 11.06.2014
Сообщений: 27
23.06.2014, 00:22  [ТС]
я помню не сработала , за этого так указал.
0
пофигист широкого профиля
4769 / 3204 / 862
Регистрация: 15.07.2013
Сообщений: 18,608
23.06.2014, 01:28
Цитата Сообщение от droider Посмотреть сообщение
Расширение, если использовать фильтр, добавляется автоматически!
Не добавляются. Да и не могут в принципе. Ибо в фильтре для одного типа файлов можно указать несколько расширений. Фильтр используется в опен/сэйв диалоге в первую очередь именно как фильтр при показе списка файлов.
0
0 / 0 / 0
Регистрация: 11.06.2014
Сообщений: 27
23.06.2014, 01:57  [ТС]
руаеться делфи на Pchar
0
пофигист широкого профиля
4769 / 3204 / 862
Регистрация: 15.07.2013
Сообщений: 18,608
23.06.2014, 02:01
Цитата Сообщение от Valerion Посмотреть сообщение
нужно выбрать(OpenDialog) документ , а потом его пересохранить(SaveDialog) в другое место и под другим названием . на что его кидать(ЧТобы хотя бы названия документа показывал)?
Ты бы всё-таки объяснил менее туманно что тебе нужно. Первое - нужно ли показывать сам документ? Если нужно, то в каком виде желательно? Второе - нужно ли иметь возможность это документ редактировать? В т.ч. изменять его тип?
Учти что тип документа не определяется расширением файла! Расширение тут вторично. Оно только помогает программам типа Проводник не думать при открытии такого документа.

P.S. И ещё раз чёрт бы побрал БГ ака МС за то что они ввели понятие документа не продумав тщательно всех последствий этого решения.
1
0 / 0 / 0
Регистрация: 11.06.2014
Сообщений: 27
23.06.2014, 08:03  [ТС]
Всем спасибо , Я поехал на защиту.
0
Эксперт Pascal/Delphi
 Аватар для droider
4882 / 2819 / 862
Регистрация: 04.10.2012
Сообщений: 10,248
23.06.2014, 09:14
Цитата Сообщение от Valerion Посмотреть сообщение
я помню не сработала
почему же у меня работает?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
23.06.2014, 09:14
Помогаю со студенческими работами здесь

Чем воспользоваться для создания?
Только начал изучать C#, понял что .NET велик, но мы не сдаемся :) Привычно для меня взялся за довольно крупную программу вместо...

Каким шаблоном лучше воспользоваться для создания онлайн-кинотеатра?
Всем привет! Подскажите пожалуйста каким лучше воспользоваться шаблоном для создания онлайн-кинотеатра... обратились за помощью...

Чем воспользоваться, для создания клиент-сервера для разных устройств
Здравствуйте. Возникла необходимость создать приложение, с помощью которого пользователи сети будут обмениваться разного рода...

На чем лучше написать лучше сайт для футбольного клуба?
На чем лучше написать лучше сайт для футбольного клуба? Просто написал примитивный вот http://fcslonim.hol.es Хотелось более...

Сколько требуется RAM для открытия документа Word в 5000 страниц?
Сколько оперативная памяти требуется для открытия документа word 5000 стр.,состоящий из таблицы. Какой размер оптимальный для открытия и...


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

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru