Schrift
[thread]2899[/thread]

Eine Zeile in einer text.txt löschen: Eine Zeile in einer text.txt löschen



<< >> 3 Einträge, 1 Seite
Gast Gast
 2004-04-09 21:56
#29167 #29167
Hallo !
Ich habe ein Adressbuch, wenn ich einen Eintrag über ein Formular eingebe, dann wird dieser (mit meinem Perlscript)
in eine txt datei gespeichert.
der Eintrag sieht dann so aus :

Name|Firstname|Street|Nr|Code|City|Tel|eMail
A|A|Astreet|01001|010101|NY|0010/1110010|name@name.ca
B|B|Bstreet|11001|11101|NY|0010/1110010|name@name.net
C|C|Cstreet|11001|11101|NY|0010/1110010|name@name.net
D|D|Dstreet|11001|11101|NY|0010/1110010|name@name.net

Ich möchte gerne einen Eintrag löschen, in dem ich ein Formular ausfülle und jedes Feld ausfülle ( in diesem Fall 8 Felder) Name, Firstname etc.
A A Astreet etc. und dann nur noch auf einen button click

Renee hat mir schon ein Script geschrieben, aber ?
In diesem Script muss man nur ein Feld ausfüllen.

Wer kann mir das Script neu schreiben oder Renee kannst du es nachbessern ?
vielen Vielen dank
rom

mein Script zum speichern:

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
#!/usr/bin/perl

read(STDIN, $Daten, $ENV{'CONTENT_LENGTH'});

open(COMMENTS, ">>data.txt"); # HTML-Datei zum Schreiben öffnen

$Daten =~ tr/&=+/| -/;
$Daten =~ s/Name/\ \;/g;
$Daten =~ s/Firstname/\ \;/g;
$Daten =~ s/Street/\ \;/g;
$Daten =~ s/Nr/\ \;/g;
$Daten =~ s/%2F/\/\;/g;
$Daten =~ s/Code/\ \;/g;
$Daten =~ s/City/\ \;/g;
$Daten =~ s/Tel/\ \;/g;
$Daten =~ s/eMail/\ \;/g;
$Daten =~ tr/;/ /;

$Daten =~ s/[ ]| //gi;
#$Daten =~ s/+/\-\;/g;

print COMMENTS "$Daten\n";

close(COMMENTS);


########################################

script von renne:

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
#! /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 $file = './data.txt';

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

foreach(@entries){
if($_ =~ /^$params{input_text_name}/){
$_ = "";
}
}

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

print "Der Eintrag $params{input_text_name} wurde gelöscht";


format_c Edit: Code-Tags eingefügt.

Gruß alex\n\n

<!--EDIT|format_c|1081533948-->
format_c
 2004-04-09 22:03
#29168 #29168
User since
2003-08-04
1706 Artikel
HausmeisterIn
[Homepage] [default_avatar]
Sorry renee. Hab das Doppelposting indem du gepostet hast gelöscht. Habs zu Spät gesehen. War ne Running Condition ;)


Gruß Alex\n\n

<!--EDIT|format_c|1081533858-->
renee
 2004-04-09 22:15
#29169 #29169
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
@format_c: Macht nix :)

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{Vorname}.'|'.$params{Nachname}.'|'.$params{Strasse}.'|'.$params{Nr}.'|'.$params{PLZ}.'|'.$params{Ort}.'|'.$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 $_ for(@entries);
close W_TXT;

print "Der Eintrag ".chomp($string)." wurde gelöscht";
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/
<< >> 3 Einträge, 1 Seite



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