2015年8月23日 星期日

解讀薪資賽局:苦幹實幹的人,為何拿不到高薪?

在理想的職場裡,我們都相信「努力必有回報」「薪水低是你沒競爭力」,不過現實世界可沒那麼天真,你的努力跟回報常常不對等,薪水高低更可能和工作能力無關。舉例來說,身為上班族的你,是否常覺得自己對公司的貢獻遠高於所領的薪水?環顧四周同事,是不是也發現辦公室裡最苦幹實幹、處理最多業務的人,常常不是最高薪的那個?

2015年8月13日 星期四

[Delphi] 使用TStringList讀取UTF-8編碼的文件

一開始我是用AssignFile方式讀取一份文字檔,在ANSI編碼的時候還算順利,如下:
procedure MyClass.ReadAnsiFile;
var
  f : TextFile;
  line : String;
begin
  AssignFile(f, 'C:\temp\myFile.txt');
  Reset(f);
  line := '';
 
  While not Eof(f) do
  begin
    ReadLn(f, line);
  end;
  CloseFile(f);
end;

每行印出來都很正常,但是當我將這個檔案換成UTF-8編碼時(不管有沒有BOM),他只要遇到中文字就變成亂碼了,所以我必須換個寫法
(假設我已經知道要讀取的文件是UTF-8格式)

procedure MyClass.ReadUtf8File;
var
  strList : TStringList;
  I : Integer;
  line := '';
begin
  strList := TStringList.Create;
  stringList.LoadFromFile('C:\temp\myFile2.txt', TEncoding.UTF8);
  for I := 0 to strList.Count - 1 do
  begin
    line := strList[I];
  end;
end;

關鍵就在strList.LoadFromeFile(path, TEncoding.UTF8)
有API可以呼叫當然就使用它,這樣會省事多了