Schrift
[thread]438[/thread]

Counter



<< >> 5 Einträge, 1 Seite
Us0R
 2005-02-19 12:32
#4434 #4434
User since
2005-02-17
6 Artikel
BenutzerIn
[default_avatar]
Hallo
Also als ich heute ein Counter für meine seite schreiben wollte hab ich denn Code geschrieben:
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#!usr/bin/perl -w
#############################
### Perl Counter von Us0R ###
#############################
open (WRITE, ">counter.txt");
while (<WRITE>)
{
$counter = $_++;
}
print WRITE $counter;
close (WRITE);
open (DATA,"counter.txt");
while (<DATA>)
{
print "$_";
}
close (DATA);
und in die counter.txt hab ich dann eine 1 rein geschrieben aber wenn ich denn Script ausführe wird die 1 gelöscht! Was hab ich denn falsch? ???\n\n

<!--EDIT|Us0R|1108809173-->
renee
 2005-02-19 12:45
#4435 #4435
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Code: (dl )
1
2
3
4
5
open (WRITE, ">counter.txt");
while (<WRITE>)
{
$counter = $_++;
}

Du öffnest eine Datei zum Schreiben, versuchst aber in der while-Schleife zu lesen... Das kann nicht funktionieren...

Zum lesen:
Code: (dl )
1
2
3
4
5
open (WRITE, "<counter.txt") or die $!;
while (<WRITE>)
{
$counter = $_++;
}
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
Us0R
 2005-02-19 13:09
#4436 #4436
User since
2005-02-17
6 Artikel
BenutzerIn
[default_avatar]
OK danke für die antwort aber es geht trozdem nicht die 1 wird nicht gelöscht aber die bleibt unferändert!:(
Code: (dl )
1
2
3
4
5
open (WRITE, "<counter.txt") or die $!;
while (<WRITE>)
{
$counter = $_++;
}
esskar
 2005-02-19 15:02
#4437 #4437
User since
2003-08-04
7321 Artikel
ModeratorIn

user image
ja schreiben musst du es ja auch wieder :)

Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
use strict;
use IO::File;
use Fcntl qw(:flock);

sub counter {
  my $filename = shift;

  my $count = 0;
  { # Counter File lesen
     my $fd = IO::File->new();
     if($fd->open("< $filename")) { # oeffnen okay
        flock($fd, LOCK_EX); # sperren
        if(my $line = $fd->getline) { #Zeile lesen
           chomp $line; # Zeilenumbruch entfernen
           $count = $line; # count lesen
        }
     }
  }
# genau hier ist ein Fehler; ein lücke im system quasi
# schau dubu's tipp weiter unten für den fix!!!
  { # Counter File schreiben
      my $fd = IO::File->new();
      if($fd->open("> $filename")) { # oeffnen okay
         flock($fd, LOCK_EX); # sperren
         print $fd ++$count; # neuen count schreiben
      }
  }
  return ($count); # unn fertig
}

print counter('counter.txt');
\n\n

<!--EDIT|esskar|1108823830-->
Dubu
 2005-02-19 16:29
#4438 #4438
User since
2003-08-04
2145 Artikel
ModeratorIn + EditorIn

user image
Und da das File-Locking eh noch nicht richtig ist ...
perldoc -q 'get locking'\n\n

<!--EDIT|Dubu|1108823408-->
<< >> 5 Einträge, 1 Seite



View all threads created 2005-02-19 12:32.