[Allegro] Kurztitelliste mit Chinesischen Schriftzeichen
Jennifer Gross
jenny at sino.uni-heidelberg.de
Di Feb 28 13:08:48 CET 2006
Liebe Listenmitglieder,
ich habe ein Problem mit folgendem Programmcode der Unterfunktion
ZeigKurztitel (stammt aus allegro.net, Version 2.5, angepasst für
Sinologie Heidelberg):
( $SatzNummer, $KurzTitel ) = split( "Ê", $Z, 2 );
Der Code der gesamten Unterfunktion steht am Ende der Email.
Das Problem ist, dass die Ausgabe, die von Avanti an das Perl-Skript
geliefert ist, durch das Sonderzeichen Ê gegliedert ist. Diese wird dann
im obigen Code verwendet, um Satznummern von Kurztiteln zu separieren.
Allerdings sind in unserer Datenbank chinesische Schriftzeichen, deren
korrekte Darstellung im Internet nur dann funktioniert, wenn die ASCII
-> ANSI Wandlung in der o.apt auskommentiert ist. Der obige Code aber
funktioniert nur, wenn die Wandlung für Ê in der o.apt stattfindet.
Dieses Sonderzeichen aber kommt natürlich auch in diversen chinesischen
Schriftzeichen vor, die nun weder korrekt dargestellt werden, noch nach
denen man suchen kann.
Meine zwei Fragen sind nun: Wo wird dieses Ê überhaupt als Trennzeichen
in die Ausgabe der Satznummer/Kurztitel eingebaut? Meine eigenen
Recherchen haben mich leider nicht weitergebracht? Wodurch kann man es
sinnvoller Weise ersetzen?
Mit herzlichen Grüßen und ebensolchem Dank,
Jennifer Gross
-----------------------------------------------------------------
sub ZeigeKurztitel
{
#
# Ausgabe des Ergebnisses
#
# Navigationsknoepfe erzeugen
if( $multi == 1 )
{
&Knoepfe;
}
# die eigentliche Kurztitelliste
print <<"KurztitellisteAnfang";
</FORM>
<FORM NAME="titelliste" ACTION="$HTMLScriptPfad/regsrch.pl" METHOD="POST">
<INPUT TYPE="HIDDEN" NAME="db" VALUE="$in{'db'}">
<TABLE>
<TR><TD COLSPAN="2"><FONT SIZE="-1">
<input type="button" value="Check all"
onClick="this.value=check(this.form)">
<INPUT TYPE="SUBMIT" VALUE="Show selected titles">
</FONT></TD></TR>
KurztitellisteAnfang
# Wenn wir die Mitte oder das Ende der Liste zeigen, gibt es zunaechst
# Fortsetzungspunkte
&PrintFortsetzung if( $Mitte == 0 || $Mitte == 1 );
# Ergebnis einlesen
if(! $Input)
{
# Downloaddatei ist zwar da, aber leer -> kein Ergebnis
&KeinErgebnis;
exit;
}
chop $Input;
# Die einzelnen Kurztitel mit Checkbox davor anzeigen lassen
local( $BoxNr ) = 0;
@InZeilen=split /^/m,$Input; # Eingabestring in Zeilen zerlegen
foreach $Z ( @InZeilen ) # Zeile verarbeiten
{
# ( $SatzNummer, $KurzTitel ) = split( "", $Z, 2 ); #J did not work
after Linux crash, replaced by next line, JAG, 19.12.2005
( $SatzNummer, $KurzTitel ) = split( "Ê", $Z, 2 );
# $KurzTitel = &anz_prep( $KurzTitel );
# $KurzTitel =~ s/ / /g; # Damit spaeter die Tabellenartige
# Struktur der Eintraege erhalten bleibt
print <<"Kurztitel";
<TR><TD>
<INPUT TYPE="CHECKBOX" NAME="num$BoxNr" VALUE="$SatzNummer">
</TD>
<TD>
<TT><FONT FACE="arial unicode ms, arial">$KurzTitel</FONT></TT>
</TD>
</TR>
Kurztitel
$BoxNr++;
}
# Wenn wir die Mitte oder den Anfang der Liste zeigen, gibt es auch
# Fortsetzungspunkte
&PrintFortsetzung if( $Mitte == 0 || $Mitte == -1 );
# Ende des Formulars
# Die erste Spalte bleibt leer
print <<"KurztitellisteEnde";
<TR><TD COLSPAN="2"><FONT SIZE="-1">
<input type="button" value="Check all"
onClick="this.value=check(this.form)">
<INPUT TYPE="SUBMIT" VALUE="Show selected titles">
</FONT></TD>
</TR>
</TABLE>
</FORM>
KurztitellisteEnde
# Nochmal Navigationsknoepfe erzeugen
if( $multi == 1 )
{
&Knoepfe;
}
}
Mehr Informationen über die Mailingliste Allegro