Thread UTF Datei einlesen und parsen - String in falscher Reihnfolge (12 answers)
Opened by Harald at 2012-09-05 15:49

Gast Harald
 2012-09-06 08:36
#161648 #161648
Guten Morgen zusammen,

also hier mal der Code aus meinem PerlSkript

Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
#!/usr/local/ActivePerl-5.10/bin/perl
use strict;
use DBI;
use utf8;
#no utf8;
use Encode;

binmode STDIN , 'utf8';
my $gazetteer_txt_datei="/Shared\ Items/Public/Datenbanken/Gazetteer/test.txt";


my $gazetteer_quellDateiname = "< ";
my $sz_line;
my @split_line;
my @split_sql;
my $sz_test_mysql;
my $sql_string;

$gazetteer_quellDateiname = $gazetteer_quellDateiname . $gazetteer_txt_datei;


open (F_READ,"<:encoding(utf8)", $gazetteer_txt_datei)
or next;

while(defined (my $sz_line = <F_READ>))
{
chomp($sz_line);

$sz_line =~ s/'/\\'/g;
$sz_line =~ s/,,,,/\,' ',' ',' ',/g;
$sz_line =~ s/,,,/\,' ',' ',/g;
$sz_line =~ s/,,/\,' ',/g;

@split_line = split(/\t/,$sz_line);

$sql_string = "INSERT INTO location (RC, UFI, UNI, LAT, LON, FC, PC, LC, SHORT_FORM, GENERIC, SORT_NAME_RO, FULL_NAME_RO, FULL_NAME_ND_RO, SORT_NAME_RG, FULL_NAME_RG, FULL_NAME_ND_RG, MODIFY_DATE)";

$sql_string = $sql_string . " values (". $split_line[0] . "," . $split_line[1] . "," . $split_line[2] . "," . $split_line[3] . "," . $split_line[4] . ",'" . $split_line[9] . "'," . $split_line[11] . ",'" . $split_line[18] . "','" . $split_line[19] . "','" . $split_line[20] . "','" . $split_line[21] . "','" . $split_line[22] . "','" . $split_line[23] . "','" . $split_line[24] . "','" . $split_line[25] . "','" . $split_line[26] . "','" . $split_line[28] . "');";

}

close(F_READ);

exit 0;


Hier mal 3 Zeilen die eingelesen werden sollen
Code: (dl )
1
2
3
1	-1307834	-1891810	12.516667	-69.983333	123100	-695900	19PCP9315983885	ND19-14	P	PPLL		AA	00				N				PAVIA	Pavía	Pavia	PAVIA	Pavía	Pavia		1993-12-21
1 -1307889 -1891862 12.566667 -70.033333 123400 -700200 19PCP8774789436 ND19-14 P PPL AA 00 V SANTAANNA Santa Anna Santa Anna SANTAANNA Santa Anna Santa Anna 1993-12-21
3 11413039 13472634 25.235017 55.278831 251406 551644 40RCN2663292082 NG40-09 S RDCR AE 03 NS ara دوار دوارالسطوه دوار السطوه دوار السطوه دوارالسطوه دوار السطوه دوار السطوه 2012-01-26


Jedoch habe ich das Phänomen, das die dritte Zeile falsch zusammen gesetzt wird. Zeile 1 und 2 werden richtig zusammen gesetzt

Code: (dl )
1
2
3
INSERT INTO location (RC, UFI, UNI, LAT, LON, FC, PC, LC, SHORT_FORM, GENERIC, SORT_NAME_RO, FULL_NAME_RO, FULL_NAME_ND_RO, SORT_NAME_RG, FULL_NAME_RG, FULL_NAME_ND_RG, MODIFY_DATE) values (4,-3381460,9260417,32.990414,66.316794,'P',' ','rus','','','KHUSHKKHOY','Khushkkhoy','Khushkkhoy','KHUSHKKHOY','Khushkkhoy','Khushkkhoy','2010-05-05');

INSERT INTO location (RC, UFI, UNI, LAT, LON, FC, PC, LC, SHORT_FORM, GENERIC, SORT_NAME_RO, FULL_NAME_RO, FULL_NAME_ND_RO, SORT_NAME_RG, FULL_NAME_RG, FULL_NAME_ND_RG, MODIFY_DATE) values (4,-3381460,6411842,32.990414,66.316794,'P',' ','fas','','','05-خوشخوی','خوشخوی','خوشخوی','خوشخوی','خوشخوی','خوشخوی','2010-05');


Bei den arabischen Schriftzeichen ist nicht nur die Postion der Arrayelemente in falscher Reihnfolge sondern auch die einzelnen Character eines Strings werden gedreht.

Ich bitte um Hilfe, vorab schon vielen Dank
Harald
Last edited: 2012-09-06 09:29:47 +0200 (CEST)

View full thread UTF Datei einlesen und parsen - String in falscher Reihnfolge