3

次の説明の行があります: '|0200|4|SALGADOS|||KG|00|19051000||||17|'

データベース内のデータを保存するパイプの場所を分けたい。

pos 関数の使い方が間違っています。しかし、私はデータを取得しています。

if then の中で、データを db に挿入します。

ReadLn(txt, line);
if True then
  if (Pos('|0200|', line)) = 1 then
  begin
    fArq.Add(line);
  end;
  if (pos('|0000|', line)) = 1 then
  begin
    fArq.Add(line);
  end;
  if (pos('|0005|', line)) = 1 then
  begin
    fArq.Add(line);
  end;
  if (pos('|C460|', line)) = 1 then
  begin
    fArq.Add(line);
    flagCF := True;
  end
  else
  begin
    if flagCF = True then
      if (pos('|C490|', line)) = 0 then
        fArq.Add(line)
      else
        flagCF := False;
  end
4

5 に答える 5

2

を使用ExtractStringsすると、| の間のすべての値をTStrings-descendant に追加できます。

fArqTStrings子孫であると仮定します。

ExtractStrings(['|'], [], PChar(line), fArq);
于 2014-11-03T15:59:37.117 に答える
0

Delphi XE3 以降を使用している場合は、Split Class Helper Method を使用できます。

 parts:=line.Split(['|'],TStringSplitOptions.ExcludeEmpty);
于 2014-11-03T19:07:42.840 に答える