(495) 925-0049, ITShop интернет-магазин 229-0436, Учебный Центр 925-0049
  Главная страница Карта сайта Контакты
Поиск
Вход
Регистрация
Рассылки сайта
 
 
 
 
 

Как сохранить файл с Visual C++ в формате UNIX

support.microsoft

При изменении исходных файлов в Visual C++ и сохранить их, строки должны завершаться символов "CR/LF" [символ возврата каретки, перевода строки] сочетание. В системах UNIX строк завершаются при помощи "LF". Таким образом, при просмотре файлы, которые были изменены в группе Windows в системах UNIX может появиться множество "^ M" символы в строках. Это происходит только при использовании редактора не знает, как интерпретировать файл Windows. Visual C++ можно открывать файлы, у строк, заканчивающихся с создания UNIX LF. Если изменить этот файл и Сохраните его из Visual C++, а затем оно сохраняется в формате Windows (вы увидите CR/LF и не LF, которая ранее была в системе).

В данной статье Описывает процедуры для сохранения измененного файла, созданного на платформе Windows в формате, который может использоваться в системах UNIX.

ПРИМЕЧАНИЕ: Visual C++.NET IDE содержит функции, доступные для сохранения файла в формате UNIX. В интегрированной среде разработки сохраните файл с помощью Сохранить как..., выберите из раскрывающегося списка сохранить Сохраните с кодировкой..., и нажмите кнопку thrn Да. Выберите из раскрывающегося списка Кодировка строки UNIX (LF), а затем нажмите кнопку ОК.

Можно использовать следующие шаги для создания консольного приложения Win32 проект, который преобразует файл, содержащий "CR/LF" для завершения строки для "LF":

  1. Чтобы создать новую с помощью консольных приложений Win32 пустой проект с именем DOS2UNIX.
  2. Из Файл меню, нажмите кнопку Новый, а затем нажмите кнопку Файлы Вкладка.
  3. Выберите Исходный файл C/C++ и введите имя нового файла DOS2UNIX.cpp.
  4. Вставьте следующий код в DOS2UNIX.cpp:
    #include<windows.h>
    #include<iostream>
    #include<fstream>
    using namespace std;
    
    int main(int argc, char* argv[])
    {
    	if(argc !=2)
    	{
    		cout << "Please specify : dos2unix filename" << endl;
    		return 0;
    	}
    	char ch;
    	char temp[MAX_PATH]="\0";
    
    	//Open the file for reading in binarymode.
    	ifstream fp_read(argv[1], ios_base::in \ 
    		/ ios_base::binary);
    	sprintf(temp, "%s.temp", argv[1]);
    	//Create a temporary file for writing in the binary mode. This
    	//file will be created in the same directory as the input file.
    	ofstream fp_write(temp, ios_base::out \ 
    		/ ios_base::trunc \ 
    		/ ios_base::binary);
    
    	while(fp_read.eof() != true)
    	{
    		fp_read.get(ch);
    		//Check for CR (carriage return)
    		if((int)ch == 0x0D)
    			continue;
    		if (!fp_read.eof())fp_write.put(ch);
    	}
    
    	fp_read.close();
    	fp_write.close();
    	//Delete the existing input file.
    	remove(argv[1]);
    	//Rename the temporary file to the input file.
    	rename(temp, argv[1]);
    	//Delete the temporary file.
    	remove(temp);
    
    	return 0;
    }
    					
  5. Из Построение меню, нажмите кнопку Создание DOS2UNIX.exe для создания EXE-файла.

Может потребоваться проверить этот exe-файл, чтобы увидеть, если он работает правильно. Для этого откройте файл в двоичном редакторе Visual C++ При выборе Открыть в группе Файл меню, выбрав DOS2UNIX.ex, Настройка Открыть как Кому Двоичный, а затем щелкнув Открыть. Например, если файл содержит "hellocrlfworld", двоичный файл данные (шестнадцатеричный) будет выглядеть так:

48 65 6 C 6 C 6F 0 D 0A 57 6F 72 6 C 64

Это эквивалентно:

Привет
Мир

В командной строке выполните команду dos2unix.exe <file name=""></file> . Далее откройте файл в двоичном редакторе Visual C++. Вы увидите, что 0x0d s, удаляются. Пока не изменить файл и сохранить его в Visual C++ 0x0d s не появится.

Это можно использовать в сочетании с Модели автоматизации Visual C++ автоматизировать весь процесс. Простой Microsoft Visual Базовый сценарий макросов могут быть написаны для вызова данного средства, но сначала необходимо это средство добавить Сервис меню выглядит следующим образом:

  1. Из Сервис меню, нажмите кнопку Настройка, а затем нажмите кнопку Сервис Вкладка.
  2. Укажите имя, например DOS2UNIX, и укажите полный путь к файлу Dos2unix.exe в Команда поле редактирования.
  3. Задайте для аргумента, $(Filename)$(FileExt).
  4. Укажите исходный каталог $(WkspDir) (укажите свой собственный путь).

Для проверки работы программы, откройте файл в Visual C++ редактор, а затем из Сервис меню запуска DOS2UNIX средство. Вы увидите, что файл, открытый в редакторе были удалены все его символы CR.

Если необходимо автоматизировать этот процесс обработать таким образом, чтобы при каждом сохранении открытого файла в редакторе Visual C++ средство DOS2UNIX.exe вызывается для удаления 0x0d s, а затем используйте следующий макрос VBScript:

'This event is fired every time the document is saved in the VC++ Editor.
Sub Application_DocumentSave(theDocument)

'This will call the user tool in the Tools menu.
'Change the number depending upon what you have. By default you only
'have 6 tools under the Tools menu, so the DOS2UNIX tool will be the 7th.

ExecuteCommand "UserTool7" 

End Sub
				

Этот код VBScript будет работать только в том случае, если у вас есть файлы, открытые в Редактор Visual C++. Это единственный способ вызова exe-файл из VBScript макрос (макрос VBScript нельзя передать параметры). Можно написать в Вместо этого и это будет более гибким. Вызовите инструмент "DOS2UNIX.exe" из надстройки без необходимости добавлять его к Сервис меню.

В Visual C++ с использованием предоставленного VBScript макроса:

  1. Открыть существующий файл с расширением .dsm или создать один.
  2. Вставьте код, ранее приведенными в файл.
  3. В Visual C++ выполните следующие действия.
    1. Из Сервис меню, нажмите кнопку Настройка.
    2. Нажмите кнопку Файлы макросов и надстроек Вкладка.
    3. Нажмите кнопку Обзор загрузить файл .dsm, содержащий макрос. Один раз в файле .dsm был выбран в Обзор диалоговое окно, файл появится в Надстроек и макросов список файлов с помощью выбранного флажка рядом с ним.
    4. Нажмите кнопку Закрыть для продолжения.

Теперь, если открыть файл в редакторе Visual C++ и сохранить из файла Файл меню, вызываемого макроса и все 0x0d s будет удален из открытого файла. Так как это повлияет на любой файл, сохранить с этого момента ведется и применяются к любому проекту открыть в будущем, убедитесь, что отключить макрос из Сервис меню с помощью Настройка (снимите флажок рядом с макросом).

Если вы являетесь затем с помощью Microsoft Visual SourceSafe как средство управления исходного кода, см. следующую статью базы знаний:

170750  (http://support.microsoft.com/kb/170750/EN-US/ ) ИНФОРМАЦИЯ: Конец параметры символа строки для Visual SourceSafe

Ссылки по теме


 Распечатать »
 Правила публикации »
  Обсудить материал в конференции Microsoft »
Обсудить материал в конференции Дизайн, графика, обработка изображений »
Написать редактору 
 Рекомендовать » Дата публикации: 11.01.2012 
 

Магазин программного обеспечения   WWW.ITSHOP.RU
Microsoft Office 365 для Дома 32-bit/x64. 5 ПК/Mac + 5 Планшетов + 5 Телефонов. Подписка на 1 год.
Microsoft 365 Business Basic (corporate)
Microsoft 365 Business Standard (corporate)
Microsoft Office для дома и учебы 2019 (лицензия ESD)
Microsoft Office 365 Персональный 32-bit/x64. 1 ПК/MAC + 1 Планшет + 1 Телефон. Все языки. Подписка на 1 год.
 
Другие предложения...
 
Курсы обучения   WWW.ITSHOP.RU
 
Другие предложения...
 
Магазин сертификационных экзаменов   WWW.ITSHOP.RU
 
Другие предложения...
 
3D Принтеры | 3D Печать   WWW.ITSHOP.RU
 
Другие предложения...
 
Новости по теме
 
Рассылки Subscribe.ru
Информационные технологии: CASE, RAD, ERP, OLAP
Безопасность компьютерных сетей и защита информации
Новости ITShop.ru - ПО, книги, документация, курсы обучения
Программирование на Microsoft Access
CASE-технологии
Один день системного администратора
Работа в Windows и новости компании Microsoft
 
Статьи по теме
 
Новинки каталога Download
 
Исходники
 
Документация
 
Обсуждения в форумах
Играть в Книгу мертвых (2)
Тайные гробницы древнего Египта, богатства и забытые мумии фараонов - это все вы можете увидеть...
 
Ресторан (4)
Мы сейчас решаем вопрос в каком ресторане проводить новогодний корпоратив, можете посоветовать...
 
Пишу программы на заказ профессионально (3309)
Пишу программы на заказ на языках Pascal (численные методы, списки, деревья, прерывания) под...
 
Отличается ли ДрифтКазино от беттинга? (59)
Друзья, давно заметил, что на Дрифте уже несколько месяцев во всю рекламируется и предлагается...
 
Можно ли зарабатывать в интернете играя в казино ? (9)
Можно ли зарабатывать в интернете играя в казино ?
 
 
 



    
rambler's top100 Rambler's Top100