Thread Wie bearbeitet man ein Array? (12 answers)
Opened by geloescht at 2012-06-25 22:35

geloescht
 2012-06-25 22:35
#159367 #159367
User since
2012-06-19
141 Artikel
BenutzerIn
[default_avatar]
Abend Leute

Ich habe eine CSV-Datei, in der in jeder Zeile ein Datensatz steht.
Ein wenig Code:

Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
#################################################
# Multi-Post-Blocker (MPB) / Mehrfachpostsperre #
#################################################

open(FILEMANAGER, "+>>coresys/incoming.csv") or die "ERROR: Unable to open the IC-file!";
flock(FILEMANAGER, LOCK_EX);

while(! eof(FILEMANAGER))
{
my $zeile = <FILEMANAGER>;
my ($DB_customstorycode, $DB_headline, $DB_benutzergeschichte, $DB_zaehler, $DB_internetpost, $DB_tbgelesen, $DB_IPAdresse, $DB_Monatstag, $DB_Monat, $DB_Jahr, $DB_Stunden, $DB_Minuten, $DB_Sekunden, $DB_clientdatakey,) = split(/;/,$zeile);
push (@FileData, $zeile);
}


Ich öffne das CSV-File, Die Daten kommen in $zeile. Werden dann nach Wunsch gesplittet, und so brav Datensatz für Datensatz in das Array @FileData gedrückt! So weit so gut - oder vielleicht auch nicht...

Was ich erreichen möchte:

Ich möchte folgende Skalare aus dem Array haben:
Je die $DB_IPAdresse plus die zugehörigen Werte wie
- $DB_Monatstag
- $DB_Monat
- $DB_Jahr
- $DB_Stunden
- $DB_Minuten
- $DB_Sekunden

Ich habe im Programm bereits die aktuell zu schreibende IP. Diese möchte ich mit sämtlichen IP im Array vergleichen. Gibt es einen Treffer (SameIP),
muss die dazugehörige Datum und Zeit ausgelesen werden.

Alternativ könnte ich bereits beim Array-Wertesammeln vergleichen. Die aktuellen Skalarwerte sind dieselben, nur ohne "DB_".

Oder ganz anders: Ich muss den Skalar $IPAdresse mit allen einzulesenden Skalarwerte $DB_IPAdresse vergleichen, um zum nächsten schritt zu kommen.

Gruß HP-User

PS.:Das ärgerliche - ich habe bereits eine funktionierende Lösung im alten Programm. Das ist aber ein goto-Gewurstel ohnes Gleichen und deshalb unsauber!
Last edited: 2012-06-25 22:36:50 +0200 (CEST)
Past brought us "SYS 64738". Present brought us "ctrl+alt+del". But what will future bring?

View full thread Wie bearbeitet man ein Array?