Thread "Nächste Zeile" auslesen (12 answers)
Opened by r_a_mueller at 2011-02-11 12:33

r_a_mueller
 2011-02-11 12:33
#145584 #145584
User since
2011-02-11
6 Artikel
BenutzerIn
[default_avatar]
Hallo und guten Morgen,
ich hoffe, jemand hat einen kleinen Tipp für mich. Es geht um folgendes:
Ich habe ein kleines Skript, um Informationen aus einer Kalender-Datei (*.ics) herauszuziehen und in einer CSV-Datei abzuspeichern.

...(schnipp)...
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
while(<IN>)
{
if (substr($_,0,12) eq 'DESCRIPTION:') {
$laenge = length($_);
print OUT "\"",substr($_,12,$laenge-14),"\";"}
if (substr($_,0,8) eq 'SUMMARY:') {
$laenge = length($_);
print OUT "\"",substr($_,8,$laenge-10),"\";"}
if (substr($_,0,8) eq 'DTSTART;') {
print OUT substr($_,27,8),"\n"};

};

...(schnapp)...
Hier wird also zeilenweise die Eingabedatei (*.ics) gelesen, und wenn die Zeile mit DESCRIPTION, SUMMARY oder DTSTART anfängt, werden die dahinterstehenden Inhalte durch ";" getrennt in die OUT-Datei geschrieben.
So weit, so einfach. Das Problem ist aber folgendes: Der Inhalt von DESCRIPTION erstreckt sich manchmal über zwei oder sogar mehr Zeilen (die nächsten Zeilen fangen in diesen Fällen mit einem Leerzeichen an, das sind auch die einzigen Zeilen mit einem Leerzeichen am Anfang). Mit meinem Skript werden diese Zeilen natürlich übersprungen. Ich müsste also nach dem ersten if noch die nächste(n) Zeile(n) prüfen, zur Prüfung auf SUMMARY oder DTDATE wieder die ursprüngliche Zeile nehmen. Ich bräuchte sowas wie $_+1 ;-)

Danke - Richard

modedit Editiert von pq: code-tags hinzugefügt
Last edited: 2011-02-11 12:50:11 +0100 (CET)

View full thread "Nächste Zeile" auslesen