Bearbeiten einer Textdatei
Tobias Beck
- cgi
Hallo, liebe Forumer/innen,
Ich habe mal wieder eine Frage und es wäre toll wenn ihr
eine Antwort wisst. Ich habe ein kleines CGI Programm
geschrieben welches eine Textdatei mit dem "sort" Befehl
durchsortiert. Das ist aber nur der erste Teil den das
Script erledigen soll. Jetzt suche ich noch einen Befehl
nach dem Muster foreach neuer Anfangsbuchstabe um dort noch
etwas einzufügen. Letzt endlich soll das Script mal eine
fertige HTML Seite erstellen:
<html>
<head>
<title>Durchsortiert</title>
</head>
<body>
<pre>
<b>Buchstabe A</b>
Aalfänger
Ameisenbär
<b>Buchstabe B</b>
Bauchtänzer
Beerenpflücker
<b>Buchstabe C</b>
.....
<b>Buchstabe Z</b>
Zierfisch
Zooologe
</pre>
</body>
</html>
von euch wünsche ich mir allerdings nur den Befehl
"foreach neuer Anfangsbuchstabe" der dann beim ersten
A,B,C...,Z etwas bestimmtes einfügt, den Rest schaffe
ich grade noch so selber...
Ich danke schon mal im Voraus
Ciao,
Tobi
ps.:Alle Rechtschreibfehler sind beabsichigt und dienen
nur der allgemeinen Erheiterung in dieser schwierigen
Zeit des Forums...
<img src="http://www383.l7.xodox.com/87ba30.gif" alt="Tobi`s Welt" style="cursor:hand;" onmouseup="window.location.href='http://www383.l7.xodox.com'" onmouseover="window.status='http://www.tobi-beck.de';return true;" onmouseout="window.status='';return true">
Hi,
von euch wünsche ich mir allerdings nur den Befehl
"foreach neuer Anfangsbuchstabe" der dann beim ersten
A,B,C...,Z etwas bestimmtes einfügt, den Rest schaffe
ich grade noch so selber...
while($datei =~ /(.).*?\n/)
{
print "Erster Buchstabe: $1\n";
}
oder in einem Zeilen-Array:
foreach (@zeilen)
{
print "Erster Buchstabe: ".substr($_,0,1)."\n";
}
mfg
CK1
Hallo Tobias!
von euch wünsche ich mir allerdings nur den Befehl
"foreach neuer Anfangsbuchstabe" der dann beim ersten
A,B,C...,Z etwas bestimmtes einfügt, den Rest schaffe
ich grade noch so selber...
Ich nehme an, Du arbeitest mit Perl. Ich hatte gerade gestern das selbe Problem. Ich arbeite aber mit PHP, was aber vom Prinzip her egal ist, da es ähnlich Funktionen in Perl geben wird. Du benötigst lediglich ein bestimmte Stringfunktion. Ich habe mal das Script aufs minimale gekürzt.
In der Array "namen" habe ich alle Namen sortiert.
$alt_bs = "";
for($i = 0; $i < count($namen); $i++)
{
// von dem Namen wird der erste Buchstabe genommen
// und in $neu_bs gespeichert.
$neu_bs = substr($namen[$i], 0, 1);
// $alt_bs ist leer, nun gehts in den if()-Block
if($alt_bs != $neu_bs)
{
// nun wird das "a" in $alt_bs abgespeichert
$alt_bs = $neu_bs;
// "a" wird als Überschrift geschrieben
echo "<b>" . $neu_bs . "</b><br>\n";
}
// Name wird geschrieben
echo $namen[$i] . "<br>\n";
}
Sollte dann ein Name mit dem Anfangsbuchstaben "b" auftauchen, geht es wieder in den if()-Block, da if($alt_bs != $neu_bs) [if(a != b)] ist.
In Aktion kannst Du es hier sehen. http://www.readings.de/index.php3?frame=actors
Ich hoffe, ich habe es verständlich erklärt.
mfg, André Laugks
Hallo André,
ich danke dir für die ausführliche Erklärung, damit hast du mir sehr geholfen und das wichtigste ich habe es auch verstanden.
schönen Abend noch...
Ciao,
Tobi