CSV рдкреНрд░рд╛рд░реВрдк рдореЗрдВ рдПрдХ рдлрд╝рд╛рдЗрд▓ рд╕реЗ рдкреНрд░реЛрд▓реЙрдЧ рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рддрдереНрдп рдЖрдпрд╛рдд рдХрд░реЗрдВ
рдкреНрд░рд╕реНрддрд╛рд╡рдирд╛ рдореЗрдВ рдбреЗрдЯрд╛рдмреЗрд╕ рддрдереНрдпреЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЙрдиреНрд╣реЗрдВ (рддрдереНрдп) рдмрд╛рд╣рд░реА рд╕реНрд░реЛрдд рд╕реЗ рдЖрдпрд╛рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред

рдЖрд░реЗрдЦ рдкрд╛рд░рдВрдкрд░рд┐рдХ рд░реВрдк рд╕реЗ рдЧрддрд┐рд╡рд┐рдзрд┐ рдХреЗ рддреАрди рдХреНрд╖реЗрддреНрд░реЛрдВ рдХреЛ рджрд░реНрд╢рд╛рддрд╛ рд╣реИ:
рдкреАрд▓рд╛ - рдПрдХ рдордзреНрдпрд╡рд░реНрддреА рдлрд╝рд╛рдЗрд▓ рддреИрдпрд╛рд░ рдХрд░рдирд╛ред рд╕рд░рд▓ рдЖрдпрд╛рдд рдХреЗ рд▓рд┐рдП, рдпрд╣ рдХреЗрд╡рд▓ CSV рдкреНрд░рд╛рд░реВрдк рдореЗрдВ рдПрдХ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рд╕рд╣реЗрдЬ рд╕рдХрддрд╛ рд╣реИред рд╢реЗрдбреНрдпреВрд▓ рдкрд░ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╕рдордп-рд╕рдордп рдкрд░ рдЕрдирд▓реЛрдбрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдбреЗрдЯрд╛рдмреЗрд╕ рдШрдЯрдХреЛрдВ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдПрдордПрд╕ рдПрд╕рдХреНрдпреВрдПрд▓ рд╕рд░реНрд╡рд░ рдЗрдВрдЯреАрдЧреНрд░реЗрд╢рди рд╕рд░реНрд╡рд┐рд╕реЗрдЬ) рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реИред рдЗрд╕ рдЧрддрд┐рд╡рд┐рдзрд┐ рдХреЛ рд▓реЗрдЦ рдореЗрдВ рдирд╣реАрдВ рдорд╛рдирд╛ рдЧрдпрд╛ рд╣реИред
рд▓рд╛рд▓ - рдПрдХ CSV рдлрд╝рд╛рдЗрд▓ рд╕реЗ рддрдереНрдп рдЖрдзрд╛рд░ рдореЗрдВ рдбреЗрдЯрд╛ рдЖрдпрд╛рдд рдХрд░реЗрдВред
рдЧреНрд░реАрди - рдкреНрд░реЛрд▓реЙрдЧ рдореЗрдВ рддрдереНрдпреЛрдВ рдХреЗ рдЖрдзрд╛рд░ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВред
рдиреЛрдЯред рддреАрд░ рдбреЗрдЯрд╛ рдзрд╛рд░рд╛рдУрдВ рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░рддрд╛ рд╣реИред
SWI- рдкреНрд░реЛрд▓реЙрдЧ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдореЗрдВ рдПрдХ CSV рдлрд╝рд╛рдЗрд▓ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЛ рд╕рд░рд▓ рдмрдирд╛рдиреЗ рд╡рд╛рд▓реЗ рд╡рд┐рдзреЗрдп рд╢рд╛рдорд┐рд▓ рд╣реИрдВред рдореИрдВ рдХрд╛рд░реНрдпрдХреНрд░рдо рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдореБрдЦреНрдп рдмрд┐рдВрджреБ рджреЗрддрд╛ рд╣реВрдВ:
1. CSV рдлрд╝рд╛рдЗрд▓ рд╕реЗ рдбреЗрдЯрд╛ рджрд░реНрдЬ рдХрд░рдирд╛
csv_read_file(File, RowList, [ separator(0';)])
рдлрд╝рд╛рдЗрд▓ - рдПрдХ рд╡рд┐рд╢реЗрд╖ рдкреНрд░рд╛рд░реВрдк рдореЗрдВ рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдирд╛рдоред
рд░реЛрд▓рд┐рд╕реНрдЯ - рдЖрдпрд╛рдд рдХреЗ рдмрд╛рдж рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреА рд╕реВрдЪреА
рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЗрдирдкреБрдЯ рдЙрд╕ рдлрд╝рд╛рдЗрд▓ рдХреЗ рдирд╛рдо рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░рддрд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рд╕реЗ рдЖрдпрд╛рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, рдФрд░ рдЦреЗрддреЛрдВ рдХреЗ рдмреАрдЪ рд╡рд┐рднрд╛рдЬрдХ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдкреИрд░рд╛рдореАрдЯрд░ рднреА рд╕реЗрдЯ рдХрд░рддрд╛ рд╣реИред рдЖрдЙрдЯрдкреБрдЯ рдкрд░ рд╣рдореЗрдВ рдлреЙрд░реНрдо рдХреА рдПрдХ рд╕реВрдЪреА рдорд┐рд▓рддреА рд╣реИ (рд░реЛрд▓рд┐рд╕реНрдЯ рд╡реИрд░рд┐рдПрдмрд▓):
[row(тАж, тАж, тАж), row(тАж, тАж, тАж), тАж]
2. рдлреИрдХреНрдЯ рдлрд╛рдЗрд▓ рдкрд░рд┐рднрд╛рд╖рд╛
рдпрд╣ рдмрд╛рдж рдореЗрдВ рдЗрд╕реЗ рд╕рдВрджрд░реНрднрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╣реИред
file(base1, csv, 'c:/pl/prj1/file.csv'). file(base1, base, 'c:/pl/prj1/file.pl').
3. рддрдереНрдп рдЖрдзрд╛рд░ рдХреА рдкрд░рд┐рднрд╛рд╖рд╛
:- dynamic(base1/3).
рд╣рдо рддрдереНрдпреЛрдВ рдХреЛ рдЗрд╕ рдЖрдзрд╛рд░ рд╕реЗ рдЬреЛрдбрд╝реЗрдВрдЧреЗред
4. рдЖрдзрд╛рд░ рдХреЛ рд╢реВрдиреНрдп рдХрд░рдирд╛
abolish(base1/3).
5. рд╕реВрдЪреА рд╕реЗ рдЖрдзрд╛рд░ рдкреАрдврд╝реА
рдпрд╣рд╛рдВ рдЖрдк рдбреЗрдЯрд╛ рдкреНрд░реАрдкреНрд░реЛрд╕реЗрд╕рд┐рдВрдЧ рднреА рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдХреЗрд╡рд▓ рдЙрди рдлрд╝реАрд▓реНрдбреНрд╕ рдХрд╛ рдЪрдпрди рдХрд░реЗрдВ рдЬрд┐рдирдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдЕрднрд┐рдХрд░реНрдордХ рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рддрдереНрдп рдЬреЛрдбрд╝рддрд╛ рд╣реИред
perform_cl([]). perform_cl([row(N1, N2, _, N3,_)|T]):- assert(base1(N1,N2,N3)), !, perform_cl(T).
рдпрд╛
forall(member(row(N1,N2,N3),RowList), assert(base1(N1,N2,N3)).
рд╡рд┐рдзреЗрдп рдлреЛрд░реНрд▓реНрдб рдмрд╣реБрдд рд╢рдХреНрддрд┐рд╢рд╛рд▓реА рд╣реИред рд╕рднреА рд╕рдорд╛рдзрд╛рди рдЦреЛрдЬ рд╡рд┐рдХрд▓реНрдк (1 рдкреИрд░рд╛рдореАрдЯрд░) рдХреЗ рд▓рд┐рдП, рдпрд╣ рджреВрд╕рд░реЗ рдкреИрд░рд╛рдореАрдЯрд░ рджреНрд╡рд╛рд░рд╛ рдЗрдВрдЧрд┐рдд рдХреНрд░рд┐рдпрд╛ рдХрд░рддрд╛ рд╣реИред
6. рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЛ рдмрд╛рд╣рд░реА рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд╕рд╣реЗрдЬрдирд╛
file(base1, base, F), tell(F), forall( base1(N1,N2,N3), (writeq( base1(N1,N2,N3)), write('.'), nl) ), told.
7. рдПрдХ рдлрд╝рд╛рдЗрд▓ рд╕реЗ рддрдереНрдп рдбреЗрдЯрд╛рдмреЗрд╕ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдирд╛
file(base1, base, F), Consult(F).
рдпрд╛
file(base1, base, F), [F].
рдХрд╛рд░реНрдпрдХреНрд░рдо рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╣реИ:
рд╕реНрд░реЛрдд рдбреЗрдЯрд╛
file1.csv рдлрд╝рд╛рдЗрд▓ рдХреА рд╕рд╛рдордЧреНрд░реА
; 12; /; ;
; 13; /; ;
; 14; /; ;
рдХрд╛рд░реНрдп рдкреНрд░реЛрдЯреЛрдХреЙрд▓:
4 ?- import_base.
true.
5 ?- forall(base1(N1,N2,N3),writeln(base1(N1,N2,N3))).
base1( , 12, )
base1( , 13, )
base1( , 14, )
true.
6 ?- save_base.
true.
7 ?- abolish(base1/3).
true.
8 ?- forall(base1(N1,N2,N3),writeln(base1(N1,N2,N3))).
ERROR: toplevel: Undefined procedure: base1/3 (DWIM could not correct goal)
9 ?- load_base.
% c:/pl/prj1/file1.pl compiled 0.00 sec, 492 bytes
true.
10 ?- forall(base1(N1,N2,N3),writeln(base1(N1,N2,N3))).
base1( , 12, )
base1( , 13, )
base1( , 14, )
true.
рддрдереНрдп рдбреЗрдЯрд╛рдмреЗрд╕ рдлрд╝рд╛рдЗрд▓ file1.pl
base1(' ',' 12',' ').
base1(' ',' 13',' ').
base1(' ',' 14',' ').
рдирд┐рд╖реНрдХрд░реНрд╖
рдпрд╣ рд▓реЗрдЦ рдПрдХ рдХрд╛рд░реНрдпрдХреНрд░рдо рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ рдЬреЛ рдПрдХ рддрдереНрдп рдЖрдзрд╛рд░ рдмрдирд╛рдиреЗ рдкрд░ рдХреБрдЫ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдХрд╛рд░реНрдп рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддрд╛ рд╣реИ рдЬреЛ рдкреНрд░рд╕реНрддрд╛рд╡рдирд╛ рдХреА рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╢рдХреНрддрд┐ рдирд╣реАрдВ рджрд┐рдЦрд╛рддрд╛ рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐, рддрдереНрдп рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рдЖрдпрд╛рдд рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рд╕реБрд░реБрдЪрд┐рдкреВрд░реНрдг рдбреЗрдЯрд╛ рдкреНрд░реЛрд╕реЗрд╕рд┐рдВрдЧ рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЛ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдкрджрд╛рдиреБрдХреНрд░рдорд┐рдд рд╕рдВрд░рдЪрдирд╛рдУрдВ (рд╕рдВрдЧрдардирд╛рддреНрдордХ рдФрд░ рдХрд░реНрдордЪрд╛рд░рд┐рдпреЛрдВ рдХреА рд╕рдВрд░рдЪрдирд╛) рдХрд╛ рдирд┐рдпрдВрддреНрд░рдг рдФрд░ рд╡рд┐рдЬрд╝реБрдЕрд▓рд╛рдЗрдЬрд╝реЗрд╢рди, рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ рдбреЗрдЯрд╛ рдХреА рдмрд┐рд▓рд┐рдВрдЧ, рд╕рдлрд╛рдИ (рдкрд░рд┐рд╡рд░реНрддрди) рдФрд░ рдЕрдиреНрдп рдХреЗ рд▓рд┐рдП рдбреЗрдЯрд╛ рдХреА рддреИрдпрд╛рд░реАред