Schrift
[thread]7910[/thread]

Regex match nicht immer: auslesen aus binärer Datei (Seite 2)



<< |< 1 2 >| >> 20 Einträge, 2 Seiten
Crian
 2006-04-21 15:31
#65173 #65173
User since
2003-08-04
5873 Artikel
ModeratorIn
[Homepage]
user image
Ich stell mir das so vor, dass der Zeiger zum Inhalt bei undef noch auf NULL zeigt.
s--Pevna-;s.([a-z]).chr((ord($1)-84)%26+97).gee; s^([A-Z])^chr((ord($1)-52)%26+65)^gee;print;

use strict; use warnings; Link zu meiner Perlseite
bloonix
 2006-04-21 15:45
#65174 #65174
User since
2005-12-17
1615 Artikel
HausmeisterIn
[Homepage]
user image
[quote=Matze,20.04.2006, 21:57]
Code: (dl )
while ($s = ReadLine($fh) && $s !~ /^$/) {
[/quote]
OT:

RegEx zum matchen/vergleichen würde ich nur nutzen, wenn
eine "und" oder/und "oder" Bedingung notwendig wäre. Beispiel:

Code: (dl )
1
2
3
my $a = "ausgeschlossen";

print "weil der schlüssel drinnen liegt :-)" if $a =~ /aus(geschlossen|gesperrt)/;


Für feste Werte ziehe ich

Code: (dl )
if ($s ne '') {}


vor.\n\n

<!--EDIT|opi|1145621184-->
What is a good module? That's hard to say.
What is good code? That's also hard to say.
One man's Thing of Beauty is another's man's Evil Hack.
Crian
 2006-04-21 16:03
#65175 #65175
User since
2003-08-04
5873 Artikel
ModeratorIn
[Homepage]
user image
ich auch

[tt]/ausges(chlossen|perrt)/ wär schneller =)[/tt]
s--Pevna-;s.([a-z]).chr((ord($1)-84)%26+97).gee; s^([A-Z])^chr((ord($1)-52)%26+65)^gee;print;

use strict; use warnings; Link zu meiner Perlseite
bloonix
 2006-04-21 16:46
#65176 #65176
User since
2005-12-17
1615 Artikel
HausmeisterIn
[Homepage]
user image
[quote=Crian,21.04.2006, 13:31]Ich stell mir das so vor, dass der Zeiger zum Inhalt bei undef noch auf NULL zeigt.[/quote]
So sieht es wohl aus...

Quote
Mit Hilfe dieser Funktion können Sie zwischen einen
undefinierten und einem definierten Nullstring unterscheiden,
was nützlich ist, wenn Sie mit Operatoren arbeiten, die reale
Nullstrings zurückgeben können.

Quelle: Programmieren mit Perl, O'Reilly, 2. Auflage, Seite 719


Aber was das nun genau heißt oder wie die beiden Nullstrings
intern dargestellt werden, weiß ich nicht - ist auch nicht
ganz so wichtig.\n\n

<!--EDIT|opi|1145624043-->
What is a good module? That's hard to say.
What is good code? That's also hard to say.
One man's Thing of Beauty is another's man's Evil Hack.
pq
 2006-04-21 17:05
#65177 #65177
User since
2003-08-04
12209 Artikel
Admin1
[Homepage]
user image
eine speicheradresse hat das ding doch aber schon nach dem my().
$ perl -wle'
my $new;
print \$new;
$new = 23;
print \$new'
SCALAR(0x5282a0)
SCALAR(0x5282a0)
Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live. -- Damian Conway in "Perl Best Practices"
lesen: Wiki:Wie frage ich & perlintro Wiki:brian's Leitfaden für jedes Perl-Problem
bloonix
 2006-04-21 17:37
#65178 #65178
User since
2005-12-17
1615 Artikel
HausmeisterIn
[Homepage]
user image
[quote=pq,21.04.2006, 15:05]eine speicheradresse hat das ding doch aber schon nach dem my().[/quote]
Jo, selbst der undefinierte Nullstring muss ja irgendwo liegen,
aber weißt du, was damit genau gemeint ist? Ich denke mal
eine binäre Null, dessen Länge sich von einer normalen Null
unterscheidet... was meinst du?
What is a good module? That's hard to say.
What is good code? That's also hard to say.
One man's Thing of Beauty is another's man's Evil Hack.
GwenDragon
 2006-04-21 17:37
#65179 #65179
User since
2005-01-17
14848 Artikel
Admin1
[Homepage]
user image
Ein
Code: (dl )
my $s = ' ';
in der sub myReadLine schafft bei mir eine sinnvolle Abbruchbedingung in der sub renFont.

Das
Code: (dl )
defined 
ist wrklich nonsense.

Je später der Abend, desto "dümmer" die Programmiererin. :blush:

Ich Faule hätte doch mal die IDE anwerfen sollen, um zu sehen, was für Daten eingelesen werden, annstatt in SciTE das Skript zu fabrizieren. :blush:
Matze
 2006-04-21 19:50
#65180 #65180
User since
2005-08-29
222 Artikel
BenutzerIn
[Homepage] [default_avatar]
[quote=opi,21.04.2006, 13:45][quote=Matze,20.04.2006, 21:57]
Code: (dl )
while ($s = ReadLine($fh) && $s !~ /^$/) {
[/quote]
OT:

RegEx zum matchen/vergleichen würde ich nur nutzen, wenn
eine "und" oder/und "oder" Bedingung notwendig wäre. Beispiel:

Code: (dl )
1
2
3
my $a = "ausgeschlossen";

print "weil der schlüssel drinnen liegt :-)" if $a =~ /aus(geschlossen|gesperrt)/;


Für feste Werte ziehe ich

Code: (dl )
if ($s ne '') {}


vor.[/quote]
Natürlich, wenn es nur auf leer oder nicht leer ankommt ist
das sicher besser und schneller, aber auch, wenn du gerne
möchtest das freier Platz als 'leer' zählt brauchst du wieder
eine RegEx, oder ?
Bei mir ist es fast immer egal ob ich Platz drin hab, oder ob
wirklich nichts drin steht, beides hätte ich gerne gematcht,
deshalb hab ich mir das so angewöhnt.

MfG. Matze
Mit freundlichen Grüßen: Matze
bloonix
 2006-04-21 19:56
#65181 #65181
User since
2005-12-17
1615 Artikel
HausmeisterIn
[Homepage]
user image
[quote=GwenDragon,21.04.2006, 15:37]Je später der Abend, desto "dümmer" die Programmiererin. :blush:[/quote]
mhmm ... 20:04 ist definitiv Mittagszeit für jede(n) Programmierer(in) :p

Wahrscheinlich zeigte der Kaffee vom Morgen noch keine Wirkung...\n\n

<!--EDIT|opi|1145634985-->
What is a good module? That's hard to say.
What is good code? That's also hard to say.
One man's Thing of Beauty is another's man's Evil Hack.
Crian
 2006-04-24 13:11
#65182 #65182
User since
2003-08-04
5873 Artikel
ModeratorIn
[Homepage]
user image
[quote=pq,21.04.2006, 15:05]eine speicheradresse hat das ding doch aber schon nach dem my().
$ perl -wle'
my $new;
print \$new;
$new = 23;
print \$new'
SCALAR(0x5282a0)
SCALAR(0x5282a0)
[/quote]
Ja klar. Ich denke, dass ein Skalar in Perl eine C-Struktur ist, in der wiederum irgendo ein Zeiger auf den "echten" Inhalt zeigt. Diese Struktur ist dann natürlich da (und das, was als Adresse des Skalars angezeigt wird), aber der Inhaltszeiger innen zeigt halt am Anfang noch auf NULL, später irgendwohin, wo der echte Wert steht.

Aber da das relativ wild geraten ist, kann das auch alles ganz anders sein.
s--Pevna-;s.([a-z]).chr((ord($1)-84)%26+97).gee; s^([A-Z])^chr((ord($1)-52)%26+65)^gee;print;

use strict; use warnings; Link zu meiner Perlseite
<< |< 1 2 >| >> 20 Einträge, 2 Seiten



View all threads created 2006-04-20 22:04.