Thread Split und Speichern oder mit RegEx speichern (9 answers)
Opened by Spider-Mann at 2005-07-23 19:07

Spider-Mann
 2005-07-23 19:07
#56627 #56627
User since
2005-07-06
23 Artikel
BenutzerIn
[default_avatar]
Ich lese folgende $entry ein:

Format:
Zahl1;Datum1;Zahl2;Datum2 oder "yesterday";beliebigerString

Beispiele:
Quote
433076;16-02-2004;0;12-03-2005;--==EXECUTER==--
423595;15-04-2003;-746;yesterday;Keyfinder
442191;12-10-2004;0;yesterday;Spider-Mann
Ich brauche die Zahlen, den String und das Datum1 bzw. Datum2 bzw. "yesterday" in Epochsekunden.

Was ist besser, dies:
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
my ($entry1, $entry2, $entry3, $entry4, $entry5) = split (/\s*;\s*/, $entry, 5);

if ($entry1 =~ /^\d+$/) {
$i::zahl1 = $entry1;
}

my ($day1, $month1, $year1) = split (/\s*-\s*/, $entry2, 3);
if ($day1 =~ /\d{2}/ and $month1 =~ /\d{2}/ and $year1 =~ /\d{4}/) {
$i::date1 = timegm (0,0,0,$day1,($month1 - 1),$year1);
}

if ($entry3 =~ /^\d+$/) {
$i::zahl2 = $entry3;
}

if ($entry4 =~ /^yesterday$/i) {
$i::date2 = $^T - 24*60*60;
} else {
my ($day2, $month2, $year2) = split (/\s*-\s*/, $entry4, 3);
$i::date2 = timegm (0,0,0,$day2,($month2 - 1),$year2);
}

$i::name = $entry5;

oder folgendes:
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
if ($entry =~ /^(\d+);(\d{2})-(\d{2})-(\d{4});(\d+);(\d{2})-(\d{2})-(\d{4})|(yes)(ter)(day);(.+)/i) {

$i::zahl1 = $1;

$i::date1 = timegm (0,0,0,$2,($3 - 1),$4);

$i::zahl2 = $5;

if ($6.$7.$8 =~ /^yesterday$/i) {
$i::date2 = $^T - 24*60*60;
} else {
$i::date2 = timegm (0,0,0,$6,($7 - 1),$8);
}

$i::name = $entry5;
}
\n\n

<!--EDIT|Spider-Mann|1122131386-->

View full thread Split und Speichern oder mit RegEx speichern