フィールドに空白(半角SP)が含まれる CSV ファイルを処理するには?(2006 以降)

 CommaText や DelimitedText では、フィールドに空白(半角SP)が含まれると、そこを区切り文字として分割してしまいますが、Delphi 2006 以降であれば、以下のような方法でフィールドに空白(半角SP)が含まれる CSV ファイルを処理できます。

var
  i, l: Integer;
  SL1: TStringList;
  SL2: TStringList;
begin
  SL1 := TStringList.Create;
  SL2 := TStringList.Create;
  try
    SL2.Delimiter := ',';           // カンマ区切り
    SL2.StrictDelimiter := True;    // Delimiter で指定された区切り文字以外は許容しない
    SL1.LoadFromFile('TEST.CSV');
    for i:=0 to SL1.Count-1 do
      begin
        SL2.DelimitedText := SL[i]; // Delimiter で指定された区切り文字のみで分割
        for l:=0 to SL2.Count-1 do
          StringGrid1.Cells[i, l] := SL2[l];
      end;
  finally
    SL2.Free;
    SL1.Free;
  end;
end;

 これらのプロパティは意外に知られていないようです。

See Also:


Delphi 2009 以降で WinProcs のエラーが出る場合には?

 過去のプロダクトのプロジェクトの移行なのであれば、"[プロジェクト | オプション | Delphiコンパイラ | ユニットのエイリアス]" を確認してみて下さい。もし、ここが空になっていたら、以下の文字列を追加してみましょう。

WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; 

 何故か消えている事があります。


日本語版と英語版のヘルプを同居させるには?(2007 以降)

 QC へバグ報告をしたい場合、大抵の事は英語版のヘルプがあれば事足りるのですが、HTMLHelp2 の仕様により日本語版/英語版を同時に閲覧する事はできません。ですが、同居させる事は可能です。

  1. 英語版のヘルプをインストールする
  2. "$(BDS)\Help\Doc"をバックアップする (例:"Doc_en")
  3. 英語版のヘルプをアンインストールする
  4. 日本語版のヘルプをインストールする
  5. "$(BDS)\Help\Doc"をバックアップする (例:"Doc_ja")
 ヘルプの切り替え方は以下の通りです。
  1. バックアップした英語版/日本語版ヘルプのフォルダを"$(BDS)\Help\Doc"にリネーム(或いはコピー)
  2. "$(BDS)\Help\Doc"にある"install_and_view.cmd"を実行
 これでヘルプを切り替える事ができます。英語版を先にインストールしないと場合によっては"Document Explorer"が英語版になってしまうかもしれません。

英語が苦にならないのであれば、"H2Viewer" をインストールするのもいいでしょう。


Borland.SCI.Gate.dll のエラーで Delphi が起動しない場合には?

 "Microsoft Visual J# 再頒布可能パッケージ" を再インストールしてみて下さい。


 BACK