Thread substr, strings hinzufügen innerhalb Schleife (4 answers)
Opened by ruco at 2013-08-16 07:21

ruco
 2013-08-16 07:21
#169592 #169592
User since
2013-08-12
6 Artikel
BenutzerIn
[default_avatar]
Guten Morgen!

Ich habe eine Frage zu substr. Wenn ich in einer Schleife (abhängig von der Länge des Strings), einen String bearbeite, indem ich Teile lösche funktioniert das soweit ganz gut.

Wenn ich aber in der gleichen Schleife versuche dem String Zeichen hinzuzufügen führt das mit unter zu einer Endlosschleife. Irgendwie ist das auch verständlich, dass das nicht so einfach funktionieren kann, denn am Anfang wird ja die Länge des Strings bestimmt, die sich dann ja ändert. Nur warum kommt dann eine Endlosschleife zustande? Gibts eine einfache Lösung?

Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
	
sub loeschen() {
my $f_content = $_[0];
my $c_number = $_[1];
my $state = "ok";

my $pos = 0;
my $record;

while ( ($pos+12) < length($f_content)) {
$record = substr($f_content,$pos+3,4);

if ($record == "2500" || $record == "2800") { substr($f_content,$pos,128, ""); } # löschen funktioniert

if ($record == "1500" || $record == "1800") { substr($f_content,$pos,128, 0, " " x 128); } # einfügen nicht

$pos += 128;
}

return $f_content, $state;
}

View full thread substr, strings hinzufügen innerhalb Schleife