title image


Smiley Re: Buffer-Überlauf - wie verhindern ? Config ?
Was ich grad noch seh, die inneren Schleifen sind auch nicht so toll:



for(my $iR = $oWkS->{MinRow};

defined $oWkS->{MaxRow} && $iR {MaxRow} ; $iR++) {





d.h. die Schleife wird nur abgebrochen, wenn $oWkS->{MaxRow} definiert ist ansonsten läuft sie für immer und ewig. Kann es sein, dass das Problem daher kommt?





Zumal die beiden inneren Schleifen sich wesentlich vereinfachen liessen.



for(my $iR = $oWkS->{MinRow};

defined $oWkS->{MaxRow} && $iR {MaxRow} ; $iR++) {

for(my $iC = $oWkS->{MinCol} ;

defined $oWkS->{MaxCol} && $iC {MaxCol} ; $iC++) {

$oWkC = $oWkS->{Cells}[$iR][$iC];

if ($oWkC) {

$SDaten[$iR][$iC] = $oWkC->Value;



Kann zu folgenden werden:



for my $row ($oWkS->{MinRow}..$oWkS->{MaxRow}) {

for my $col ($oWkS->{MinCol}..$oWkS->{MaxCol} ) {



$daten[$row][$col] = $oWks->{Cells}[$row][$col]->Value

}

}



Wobei du die Werte von Min/MaxRow bzw. Min/MaxCol vor die Schelifen packen solltest.

Falls diese Werte lediglich die Länge des Arrays in $oWkS->{cells} wiedergeben kannst du die ganze Sache noch mehr vereinfachen.





foreach my $row ( @{$oWks->{Cells}[$row]} ) {

my $neueReihe = []

foreach my $col ( @{$row} ) {

push $neueReihe, $col->Value

}

push @{ $daten }, $neueReihe;

}

(ungetestet)




geschrieben von

Login

E-Mail:
  

Passwort:
  

Beitrag anfügen

Symbol:
 
 
 
 
 
 
 
 
 
 
 
 
 

Überschrift: