Bagaimana cara menyimpan File dari Visual C++ in UNIX Format

Terjemahan Artikel Terjemahan Artikel
ID Artikel: 268901 - Melihat produk di mana artikel ini berlaku.
Perbesar semua | Perkecil semua

RINGKASAN

Ketika Anda mengedit file sumber dalam Visual C++ dan menyelamatkan mereka, baris yang diakhiri dengan karakter "CR/LF" [carriage return, line feed] kombinasi. Pada sistem UNIX, baris yang diakhiri oleh "LF". Jadi, ketika Anda melihat file yang diedit di bawah Windows pada sistem UNIX Anda dapat melihat banyak "^ M" karakter mengakhiri garis. Hal ini terjadi jika editor Anda menggunakan tidak tahu bagaimana menafsirkan Windows file. Visual C++ dapat membuka file yang memiliki garis yang mengakhiri dengan LF dibuat UNIX. Jika Anda mengedit file ini dan menyimpan dari Visual C++ kemudian disimpan dalam format Windows (Anda akan melihat CR/LF dan tidak LF yang muncul sebelumnya).

Artikel ini menjelaskan prosedur untuk menyimpan berkas diedit yang dibuat pada Windows platform dalam format yang dapat digunakan pada sistem UNIX.

CATATAN: Visual C++.NET IDE memiliki fitur yang tersedia untuk menyimpan berkas dalam UNIX format. Dalam IDE, Simpan file dengan menggunakan Simpan sebagai..., dari daftar drop-down Simpan, pilih Simpan dengan pengkodean..., dan klik thrn Ya. Dari daftar drop-down Line Encoding, pilih Unix (LF), lalu klik Oke.

INFORMASI LEBIH LANJUT

Anda dapat menggunakan langkah-langkah berikut untuk membuat konsol Win32 proyek yang akan mengkonversi file yang berisi "CR/LF" untuk pemutusan baris untuk "LF":
  1. Menggunakan AppWizard aplikasi konsol Win32 untuk membuat yang baru proyek kosong bernama DOS2UNIX.
  2. Dari Berkas menu, klik Baru, lalu klik File tab.
  3. Pilih C/c ++ Source File dan nama file baru DOS2UNIX.CPP.
  4. Paste kode berikut ke 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. Dari Bangun menu, klik Membangun DOS2UNIX.exe untuk menghasilkan berkas .exe.
Anda mungkin ingin menguji file .exe ini untuk melihat apakah itu bekerja dengan benar. Untuk melakukannya, buka file yang ada di editor biner Visual C++ oleh memilih Terbuka di bawah Berkas menu, memilih DOS2UNIX.ex, pengaturan Terbuka sebagai untuk Biner, lalu mengklik Terbuka. Sebagai contoh, jika berkas berisi "HelloCRLFWorld", biner data (heksadesimal) akan terlihat seperti:
48 65 6 C 6 C 6F 0 D 0A 57 6F 72 6 C 64
Ini setara dengan:
Halo
Dunia
Dari prompt perintah, jalankan perintah dos2unix.exe <file name=""></file>. Selanjutnya, buka file dalam editor biner Visual C++. Anda akan melihat bahwa 0x0Ds akan dihapus. Selama Anda tidak mengedit file dan menyimpannya dalam Visual C++ 0x0Ds tidak akan muncul.

Anda dapat menggunakan ini dalam hubungannya dengan Visual C++ otomatisasi untuk mengotomatisasi seluruh proses. Microsoft Visual yang sederhana Dasar Script makro dapat ditulis untuk memanggil alat ini, tapi pertama alat ini harus ditambahkan ke Alat menu sebagai berikut:
  1. Dari Alat menu, klik Menyesuaikan, lalu klik Alat tab.
  2. Tentukan nama, seperti DOS2UNIX, dan menyediakan jalur penuh untuk berkas Dos2unix.exe di Perintah mengedit kotak.
  3. Untuk argumen, menentukan $(Filename)$(FileExt).
  4. Untuk direktori awal, menentukan $(WkspDir) (sebutkan jalan Anda sendiri).
Untuk memverifikasi bahwa alat bekerja, membuka file dalam Visual C++ editor, dan kemudian dari Alat menjalankan menu DOS2UNIX alat. Anda akan melihat bahwa file yang dibuka di editor memiliki semua karakter CR dihapus.

Jika Anda ingin mengotomatisasi ini proses sehingga setiap kali Anda menyimpan berkas dibuka di editor Visual C++, alat DOS2UNIX.exe dipanggil untuk menghapus 0x0Ds, kemudian gunakan makro VBScript berikut:
'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
				

Kode VBScript ini akan bekerja hanya jika Anda memiliki berkas terbuka di Visual C++ editor. Ini adalah satu-satunya cara untuk memanggil berkas .exe dari VBScript makro (Anda tidak dapat melewati parameter untuk makro VBScript). Anda dapat menulis add-in Sebaliknya, dan ini akan menjadi lebih fleksibel. Anda dapat menghubungi DOS2UNIX.exe alat dari add-in tanpa harus menambahkannya ke Alat menu.

Untuk menggunakan makro VBScript disediakan dalam c ++ Visual:
  1. Membuka berkas yang ada yang memiliki ekstensi .dsm atau membuat salah satu.
  2. Paste kode disediakan sebelumnya ke file.
  3. Dalam Visual C++ lakukan hal berikut:
    1. Dari Alat menu, klik Menyesuaikan.
    2. Klik Add-in dan macro file tab.
    3. Klik People memuat berkas .dsm yang berisi makro. Sekali berkas .dsm dipilih dalam People kotak dialog, file Anda akan muncul di Add-in dan makro daftar file dengan kotak centang dipilih sebelahnya.
    4. Klik Tutup untuk melanjutkan.
Sekarang, jika Anda membuka file dalam editor Visual C++ dan menyimpan file dari Berkas menu, makro akan disebut dan semua 0x0Ds akan dihapus dari file dibuka. Karena ini akan mempengaruhi file Anda menyimpan dari titik ini dan seterusnya dan akan berlaku untuk setiap proyek Anda Buka di masa depan, pastikan bahwa Anda menonaktifkan makro dari Alat menu dengan menggunakan Menyesuaikan (Kosongkan kotak centang di sebelah makro).

Jika Anda menggunakan Microsoft Visual SourceSafe sebagai alat manajemen kode sumber, kemudian lihat artikel Basis Pengetahuan berikut:
170750 INFO: Akhir baris karakter pengaturan untuk Visual SourceSafe

REFERENSI

Untuk informasi lebih lanjut lihat "Pengembang Studio objek" di MSDN perpustakaan:
.aspx http://MSDN.Microsoft.com/en-us/library/aa242803 (VS.60)
Juga melihat "Argumen makro":
http://MSDN.Microsoft.com/en-us/library/aa232456.aspx

Properti

ID Artikel: 268901 - Kajian Terakhir: 22 September 2011 - Revisi: 2.0
Berlaku bagi:
  • Microsoft Visual C++ .NET 2003 Standard Edition
  • Microsoft Visual C++ .NET 2002 Standard Edition
Kata kunci: 
kbautomation kbdevstudio kbhowto kbide kbscript kbvcobj kbmt KB268901 KbMtid
Penerjemahan Mesin
PENTING: Artikel ini diterjemahkan menggunakan perangkat lunak mesin penerjemah Microsoft dan bukan oleh seorang penerjemah. Microsoft menawarkan artikel yang diterjemahkan oleh seorang penerjemah maupun artikel yang diterjemahkan menggunakan mesin sehingga Anda akan memiliki akses ke seluruh artikel baru yang diterbitkan di Pangkalan Pengetahuan (Knowledge Base) dalam bahasa yang Anda gunakan. Namun, artikel yang diterjemahkan menggunakan mesin tidak selalu sempurna. Artikel tersebut mungkin memiliki kesalahan kosa kata, sintaksis, atau tata bahasa, hampir sama seperti orang asing yang berbicara dalam bahasa Anda. Microsoft tidak bertanggung jawab terhadap akurasi, kesalahan atau kerusakan yang disebabkan karena kesalahan penerjemahan konten atau penggunaannya oleh para pelanggan. Microsoft juga sering memperbarui perangkat lunak mesin penerjemah.
Klik disini untuk melihat versi Inggris dari artikel ini:268901

Berikan Masukan

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com