phpbar.de logo

Mailinglisten-Archive

=?Windows-1252?Q?PLZ_liste_auch_f=FCr_andere_Server?=
Archiv Mailingliste mysql-de

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

=?Windows-1252?Q?PLZ_liste_auch_f=FCr_andere_Server?=



Hallo Liste,

anbei mal ein kleines Programm welches die Datei Orte.sql
nach dem Import in ein Format exportiert mit dem auch
die Table auf nicht deutschen bzw. nicht mit charset=german compilierten
Servern zur Verfügung gestellt werden kann.

Das Ganze ist in tcl geschrieben (in PHP umzuschreiben sollte kein Problem
sein)

Falls jemand das Programm nicht ausführen kann hier ein Link
zur schon umgewandelten Datenbank:

http://members.tripod.de/mysql/

Schönes Wochenende

Mariano

#!/usr/home/mindmail/mysqltclsh
#
# Programm zum Umwandeln der Orte in ein Format welches keine spezielle
# Compilierung von mysql erfordert (laeuft auch auf ami-servern!)
# (c) 2000 Mariano Glas
# glas_(at)_orgaline.net
# version 0.01 (09.06.2000)

proc umlaute_db {daten} {
 regsub -all {[\(]} $daten "" daten
 regsub -all {[\)]} $daten "" daten
 regsub -all {[\\]} $daten "',CHAR(92),'" daten
 regsub -all {[\']} $daten "',CHAR(39),'" daten
 regsub -all {[\"]} $daten "\',CHAR(34),'" daten
 regsub -all {[Ä]} $daten "',CHAR(196),'" daten
 regsub -all {[Ü]} $daten "',CHAR(220),'" daten
 regsub -all {[Ö]} $daten "',CHAR(214),'" daten
 regsub -all {[ä]} $daten "',CHAR(228),'" daten
 regsub -all {[ö]} $daten "',CHAR(246),'" daten
 regsub -all {[ü]} $daten "',CHAR(252),'" daten
 regsub -all {[ß]} $daten "',CHAR(223),'" daten
 set daten_n $daten
 return $daten_n
}

set user "test" #benutzername zum zugriff auf DB
set pw "test" #passwort zum zugriff auf DB
set host "mysqldb" #host der DB
set db "test" #der name der DB
set output "wandelorte.sql" #in diese Datei wird die neue DB geschrieben
set table "orte" #ausgangstabelle
set tableout "orte2" #neue zieltabelle
set silent "off" #mit oder ohne Statusanzeige

puts "Öffne Datei $output"
set outfile [open $output w+]
puts $outfile " CREATE TABLE $tableout ("
puts $outfile "    ID int(11) not null default 0 auto_increment,"
puts $outfile "    PLZ varchar(11) not null default '-',"
puts $outfile "    Ort varchar(50) not null default '-',"
puts $outfile "    Land char(3) not null default '-',"
puts $outfile "    Vorwahl varchar(12) not null default '-',"
puts $outfile "    Staat varchar(5) not null default '-',"
puts $outfile "    primary key(ID),"
puts $outfile "    KEY Ort (Ort),"
puts $outfile "    KEY Vorwahl (Vorwahl),"
puts $outfile "    KEY PLZ (PLZ),"
puts $outfile "    KEY Staat (Staat)"
puts $outfile " "
puts $outfile " );"

puts "Connect zur Datenbank $db"
set handle [mysqlconnect -user $user -password $pw $host]
set u [mysqluse $handle $db]
set sql "select Ort, Land, Staat, ID, PLZ, Vorwahl from $table"
mysqlsel $handle $sql
set rows [mysqlresult $handle rows]
puts "\[[clock format [clock clicks]]\]"
puts "$rows Orte werden gecheckt und ggf. umgewandelt..."
set z 0
set y 0
set prz 0
while {$z<$rows} {
 incr z
 set inhalt [mysqlnext $handle]
 set ort [lindex $inhalt 0]
 set tmport [umlaute_db $ort]
 set land [lindex $inhalt 1]
 set tmpland [umlaute_db $land]
 set staat [lindex $inhalt 2]
 set tmpstaat [umlaute_db $staat]
 set id [lindex $inhalt 3]
 set plz [lindex $inhalt 4]
 set vorwahl [lindex $inhalt 5]
 if {$ort!=$tmport || $land!=$tmpland || $staat!=$tmpstaat} {
  incr y
  if {$silent=="off"} {
   if {[expr $z*100/$rows]!=$prz} {
    puts "[expr $z*100/$rows]%"
    set prz [expr $z*100/$rows]
   }
  }
 }
 set sql "INSERT INTO $tableout VALUES($id, '$plz', concat('$tmport'),
concat('$tmpland'),'$vorwahl',concat('$tmpstaat'));"
 puts $outfile $sql

}
flush $outfile
close $outfile
puts "\[[clock format [clock clicks]]\]"
puts "$y Orte gewandelt."
puts "Neue Datei '$output' ([file size wandelorte.sql] Bytes)"
if {$table==$tableout} {
 puts "ACHTUNG!"
 puts "vor dem Import der Datei '$output' muss zuerst die tabelle '$table'
gelöscht werden."
}


---
*** Abmelden von dieser Mailingliste funktioniert per E-Mail
*** an mysql-de-request_(at)_lists.4t2.com mit Betreff/Subject: unsubscribe


Home | Main Index | Thread Index

php::bar PHP Wiki   -   Listenarchive