Импорт большого CSV файла

Советы » ASCII и CSV » Импорт большого CSV файла

var

s: String

; f: TextFile; AssignFile(f, 'D:\INPUT.TXT); Reset(f); while

not

EOF(f) do

begin

ReadLn(s, f); ShowMessage(GetField(s, 1)); {The first field} ShowMessage(GetField(s, 6)); {The sixth field} ShowMessage(GetField(s, 25)); {will return '' if no 25 column...} end

; CloseFile(f); { ==== This function will return a field from a delimited string. ==== } function

GetField(InpString: String

; fieldpos: Integer): String

; var

c: Char; curpos, i: Integer; begin

curpos := 1; for

i := 1 to

fieldpos do

begin

result := ''; if

curpos > Length(InpString) then

Break; repeat

c := InpString[curpos]; Inc(curpos, 1); if

(c = '"') or

(c = #13) or

(c = #10) then

c := ' '; if

c <> ',' then

result := result + c; until

(c = ',') or

(curpos > Length(InpString)) end

; if

(curpos > Length(InpString)) and

(i < fieldpos) then

result := ''; result := Trim(result); end

; { ==== This function will trim a string removing spaces etc. ==== } function

Trim(inp_str: String

): String

; var

i: Integer; begin

for

i := 1 to

Length(inp_str) do

if

inp_str[i] <> ' ' then

Break; if

i > 1 then

Delete(inp_str, 1, i - 1); for

i := Length(inp_str) downto

1 do

if

inp_str[i] <> ' ' then

Break; if

i < Length(inp_str) then

Delete(inp_str, i + 1, Length(inp_str)); result := inp_str; if

result = ' ' then

result := ''; end

;

Другое по теме:

Категории

Статьи

Советы

Copyright © 2022 - All Rights Reserved - www.delphirus.com