Schrift
[thread]2901[/thread]

Hallo ! Renee, script zerhackt meine TXT: Hallo ! Renee, script zerhackt meine TXT



<< >> 4 Einträge, 1 Seite
Gast Gast
 2004-04-10 21:56
#29183 #29183
Hallo ! Renne, wenn Du diesen Betrag liest, kannst Du vielleicht noch einmal neues script schreiben ?

Dein script läuft, aber es schreibt mir in meine data.txt
folgendes :

for(Name|Firstname|Street|Nr|Code|City|Tel|eMail
A|A|Astreet|056|010101|NY|0010/1110010|name@s.net
B|B|Bstreet|056|010101|NY|0010/1110010|name@s.net  C|C|Cstreet|056|010101|NY|0010/1110010|name@s.net D|D|Dstreet|056|010101|NY|0010/1110010|name@s.net
)

Dein scribt schreibt in die erste Zeile : for ( und am ende  )
und rückt die Daten Zeilen ein, so dass die erste Datenspalte
nicht in meiner Html angezeigt wird.

Frage: Was ist in dem script, das das for ( und die ) in meiner Data.txt gespeichert wird ? Ich möchte das nicht in der Datei haben.

Script von Renee:
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
#! /usr/bin/perl

use strict;
use diagnostics;
use CGI;
use CGI::Carp qw(fatalsToBrowser);

my $cgi = CGI->new();
my %params = $cgi->Vars();
print $cgi->header(-type => 'text/html');

my $string = $params{Name01}.'|'.$params{Firstname01}.'|'.$params{Street}.'|'.$params{Nr}.'|'.$params{Code}.'|'.$params{City}.'|'.$params{Tel}.'|'.$params{Email}."\n";

my $file = './data.txt';

open(R_FILE,"<$file") or die($!);
my @entries = <R_FILE>;
close R_FILE;

foreach(@entries){
if($_ eq $string){
  $_ = "";
}
}

open(W_TXT,">$file") or die($!);
print W_TXT "$_ for(@entries)";
close W_TXT;

print "Der Eintrag ".chomp($string)." wurde gelöscht";


edit renee: [code]-Tags eingefügt.\n\n

<!--EDIT|renee|1081676057-->
format_c
 2004-04-10 22:11
#29184 #29184
User since
2003-08-04
1706 Artikel
HausmeisterIn
[Homepage] [default_avatar]
Wenn du die Original Datei noch hasst nimm das von mir angepasste Script:
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
#! /usr/bin/perl

use strict;
use diagnostics;
use CGI;
use CGI::Carp qw(fatalsToBrowser);

my $cgi = CGI->new();
my %params = $cgi->Vars();
print $cgi->header(-type => 'text/html');

my $string = $params{Name01}.'|'.$params{Firstname01}.'|'.$params{Street}.'|'.$params{Nr}.'|'.$params{Code}.'|'.$params{City}.'|'.$params{Tel}.'|'.$params{Email}."\n";

my $file = './data.txt';

open(R_FILE,"<$file") or die "Konnte $file nicht lesen: $!";
my @entries = <R_FILE>;
close R_FILE;

@entries = grep($_ ne $string,@entries);

open(W_TXT,">$file") or die "Konnte $file nicht schreiben: $!";
print W_TXT @entries;
close W_TXT;

print "Der Eintrag ".chomp($string)." wurde gelöscht";


BTW: Eigentlich wollen wir dir nicht die Arbeit abnehmen. Wir helfen lieber dir dabei die Sprache zu lernen und helfen eher bei kleinen Problemen.

Gruß alex\n\n

<!--EDIT|format_c|1081620857-->
renee
 2004-04-11 13:33
#29185 #29185
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
[quote=Guest,10.04.2004, 19:56]
Code: (dl )
1
2
3
open(W_TXT,">$file") or die($!);
print W_TXT "$_ for(@entries)";
close W_TXT;
[/quote]
Ganz so hatte ich es ja auch nicht geschrieben ;)

ich hatte es so:
Code: (dl )
1
2
3
open(W_TXT,">$file") or die($!);
print W_TXT $_ for(@entries);
close W_TXT;


Da sind in der mittleren Zeile keine Anführungszeichen!!

Noch einen schönen Sonntag!
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/
Strat
 2004-04-11 17:53
#29186 #29186
User since
2003-08-04
5246 Artikel
ModeratorIn
[Homepage] [default_avatar]
oder in meinen Augen etwas besser lesbar und mit weniger RAM-Verbrauch:
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
#! /usr/bin/perl

use strict;
use diagnostics;
use CGI;
use CGI::Carp qw(fatalsToBrowser);

my $file = './data.txt';

my $cgi = CGI->new();
my %params = $cgi->Vars();
print $cgi->header(-type => 'text/html');

my $string = join( '|',
   map { defined($_) ? $_ : '' }
   @params{ qw(Name01 Firstname01 Street Nr Code City Tel Email) }
    ) . "\n";

open(R_FILE, "<$file") or die "Konnte $file nicht lesen: $!";
open(W_TXT, ">$file") or die "Konnte $file nicht schreiben: $!";
while (<R_FILE>) {
print W_TXT $_ if $_ ne $string;
}
close R_FILE;
close W_TXT or die "Fehler beim Schliessen von $file: Festplatte voll? $!";

print "Der Eintrag ".chomp($string)." wurde gelöscht";
\n\n

<!--EDIT|Strat|1081691791-->
perl -le "s::*erlco'unaty.'.dk':e,y;*kn:ai;penmic;;print"
http://www.fabiani.net/
<< >> 4 Einträge, 1 Seite



View all threads created 2004-04-10 21:56.