[Vienna-pm] datei zeilenweise einlesen in arrays

peter pilsl pilsl at goldfisch.at
Tue Mar 8 04:45:28 PST 2005


e_horn at fh-bingen.de wrote:
> Hallo!
> Kann mir jemand sagen wie ich eine solche datei zeilenweise speichern kann in
> ein array?
> das ich habe  	array VAL B 212      -2.882  24.626 111.287
> 		array VAL B 212      -3.542  25.442 110.620
> 		array VAL B 212      -1.026  24.015 109.761 usw...
> 
> ATOM   3085  C   VAL B 212      -2.882  24.626 111.287  1.00 23.12     C
> ATOM   3086  O   VAL B 212      -3.542  25.442 110.620  1.00 22.42     O
> ATOM   3087  CB  VAL B 212      -1.026  24.015 109.761  1.00 23.40    C
> ATOM   3088  CG1 VAL B 212      -0.032  24.644 110.725  1.00 22.89     C
> ATOM   3089  CG2 VAL B 212      -0.369  22.913 108.945  1.00 24.23     C
> ATOM   3090  OXT VAL B 212      -2.701  24.727 112.521  1.00 24.52     N
> 


ich checks nicht ganz, wie dein datenformat ist und was du damit genau 
willst, aber ein beispiel zum verarbeiten deiner daten wäre in etwa 
(untested)

my $p=[];
while (<FH>) {
   push(@$p,[split(/\s+/)]);
}


mit split trennst du deine daten überall dort wo deine daten leerzeichen 
oder tabs oder so haben (whitespaces = \s)

das ergebnis von split ist ein array, das du wieder in einem array 
speicherst. Du erhältst also ein array von arrays. Die eckigen Klammern 
zeigen, dass es sich dabei um sogenannte "anonyme" arrays handelt, das 
sind zeiger auf arrays.

am ende kannst du dann das 4. element in der 7. zeile abfragen:

$p->[3]->[6]


lgp




-- 
mag. peter pilsl
goldfisch.at
IT-management
tel +43 699 1 3574035
fax +43 699 4 3574035
pilsl at goldfisch.at


More information about the Vienna-pm mailing list