2018年6月5日 星期二

[C#]讀檔,彈出DLG,指定檔名

//彈跳出DLG 選擇TXT檔案 讀取字串

ArrayList alWorkPoint = new ArrayList();
//System.Windows.Forms.ListView listView_CM; 宣告的Listview元件
OpenFileDialog dialog = new OpenFileDialog();
dialog.Title = "Select file";
dialog.InitialDirectory = ".\\";
dialog.Filter = "txt files (*.*)|*.txt";
            if (dialog.ShowDialog() == DialogResult.OK)
            {
                StreamReader filer = new StreamReader((dialog.FileName));
                alWorkPoint.Clear();
                listView_CM.Items.Clear();
                string str;
                while ((str = filer.ReadLine()) != null)
                {
                    alWorkPoint.Add(str);
                }
                DecoderFileToListView();
                filer.Close();
            }
//指定檔名,讀取單一檔案
StreamReader filer = new StreamReader(("new.txt"));
string str;
while((str = filer.ReadLine()) != null)
{
    MessageBox.Show(str);
}


測試環境:vs2015 c#.net

[C#]存檔功能、彈出DLG

using System; using System.Collections;

//顯示Dlg 儲存txt檔
ArrayList alWorkPoint = new ArrayList();
alWorkPoint.clear();
SaveFileDialog dialog = new SaveFileDialog();
 dialog.Title = "save";
 dialog.InitialDirectory = ".\\";
 dialog.FileName = "new.txt";
 dialog.Filter = "txt file (*.*)|*.txt";
 if (dialog.ShowDialog() == DialogResult.OK)
   {
       StreamWriter filew = new StreamWriter((dialog.FileName));
       DecoderListView();
       for (int i = 0; i < alWorkPoint.Count; i++)
       {
           filew.WriteLine(alWorkPoint[i].ToString());
       }
       filew.Close();
       MessageBox.Show("save ok");
   } 


//--------直接存檔 指定檔名


StreamWriter filew = new StreamWriter(("new.txt"));
filew.WriteLine("hello");
filew.WriteLine("world");
filew.WriteLine(DateTime.Now);
filew.Close();


測試環境:vs2015 c#.net



2018年6月4日 星期一

[C++]字串轉換成Ascii 實現32位元int資料與BYTE[]互轉


CString FileName_Main = L"Hello_World";
int iByte = WideCharToMultiByte(CP_ACP, 0, FileName_Main, -1, NULL, 0, NULLNULL);
char *chText = NULL;
chText = new char[iByte];
WideCharToMultiByte(CP_ACP, 0, FileName_Main, -1, chText, iByte, NULLNULL);//轉ASCII

int idata[4] = {};
memcpy(&idata[0], chText, iByte);//轉換成32位元int並存放到int中
delete[] chText;

測試環境:VS2015 MFC
以下參考----------------------
int --> BYTE[]
      int data = 0xFFFFFFFF;
      unsigned char buf[4];
      memcpy(buf, &data, sizeof(int));
BYTE[] --> int
      memcpy(&data, buf, 4);

更多詳細--點我


[C#]字串轉換成Ascii ,再分割4個字元一組

// Create two different encodings.
 Encoding ascii = Encoding.ASCII;
Encoding unicode = Encoding.Unicode;
 
// Convert the string into a byte array.
byte[] unicodeBytes = unicode.GetBytes(FileName_Main);
 
// Perform the conversion from one encoding to the other.
byte[] asciiBytes = Encoding.Convert(unicode, ascii, unicodeBytes);
int result = Convert.ToInt16(Math.Ceiling(asciiBytes.Length / 4.0));
for (int i = 0; i < result; i++)
   {
       int Reg =  i;
       Int32 idata = BitConverter.ToInt32(asciiBytes, i * 4);
   }
測試環境:VS2015 C#.NET

[C++]陣列空間動態創建

//動態創建空間
int count = 100;
double *pDtest = NULL;
pDtest = new double[count];
//~~~~~~自由取值處理~~~~~~~~~
delete[] pDtest;//清除


測試環境:VS2015 MFC

[C++]獲取檔案路徑、去除檔名

專案路徑↓

TCHAR path[MAX_PATH];
::GetModuleFileName(NULL, path, _MAX_PATH);//獲取檔案路徑
PathRemoveFileSpec(path);//去除檔名


測試環境:VS2015 MFC

[C++]UNICODE字符串轉換為ansi字符串

//UNICODE字符串轉換為ansi字符串
PTCHAR ptszText = TEXT("UNICODE字符串轉換為ansi字符串!");
int cbMultiByte = WideCharToMultiByte(CP_ACP, 0, ptszText, -1, NULL, 0, NULLNULL);
char *pszText = NULL;
pszText = new char[cbMultiByte];
WideCharToMultiByte(CP_ACP, 0, ptszText, -1, pszText, cbMultiByte, NULLNULL);
delete[] pszText;

//Cstring轉ansii
CString csText = L"UNICODE字符串轉換為ansi字符串!";
int iByte = WideCharToMultiByte(CP_ACP, 0, csText, -1, NULL, 0, NULLNULL);
char *chText = NULL;
chText = new char[iByte];
WideCharToMultiByte(CP_ACP, 0, csText, -1, chText, cbMultiByte, NULLNULL);
delete[] pszText;

測試環境:VS2015 MFC

[SQL]顯示千分位與小數顯示

  CONVERT ( data_type [ ( length ) ] , expression [ , style ] ) CONVERT style參數說明 1  (expression為 money 或 smallmoney型別): 0 : 預設,保留小數位後兩位,並四捨...