wie kann man daten löschen keine datei
|
Seitenanfang |
| Hallo, wie kann ich denn Sorgen das in einer Datei einige Daten gelöscht werden.
Datum: 15.08.2006-15:50

|
re: wie kann man daten löschen keine datei
|
Seitenanfang |
| Wie sieht die Datei aus? Welche Daten sollen gelöscht werden?
Datum: 15.08.2006-21:03

|
re: wie kann man daten löschen keine datei
|
Seitenanfang |
Ich wiederhole mich: Wie sieht die Datei aus? Welche Daten sollen gelöscht werden?Einen ersten Ansatz hat ja tinita gegeben. Aber wie es genau aussehen muss kann man aufgrund der spärlichen Infos nicht sagen...
Datum: 16.08.2006-17:49

|
re: wie kann man daten löschen keine datei
|
Seitenanfang |
| sorry, in der datei bsp(test.txt) sollen z.b. einige namen stehen: z.b. Hans Peter Jürgen Eva So jetzt möchte ich den namen Peter löschen aber wie, ich habe es erst mit der If-Bedingung gemacht, aber bei 50 daten bzw. namen macht es keinen sinn mehr mit der If-Bedingung, deshalb brauche ich eure hilfe Gruß
Datum: 17.08.2006-08:50

|
re: wie kann man daten löschen keine datei
|
Seitenanfang |
| Irgendwie musst Du doch die Information bekommen, welche Namen gelöscht werden sollen?!? Wenn Du die Daten in einem Array hast (egal ob Du das über eine Datei füllst oder ein HTML-Formular oder in das Skript schreibst), dann kannst Du es so machen: use Tie::File;my @zu_loeschen = qw(Peter Mario); my $file = 'test.dat'; tie my @lines,'Tie::File',$file or die $!; @lines = grep{chomp(my $test = $_);!grep{$_ eq $test}@zu_loeschen}@lines; untie @lines;
Datum: 17.08.2006-10:38

|
re: wie kann man daten löschen keine datei
|
Seitenanfang |
| danke für die schnelle antwort. Ja, es wie in die HTML-formular geschrieben welcher name gelöschte werden soll, daraufhin soll dann der name gelöscht werden. Die eingabe erfolgt durch eine input eingabe.Das mit checkbox habe ich nicht hinbekommen deshalb habe ich mich für das <input name="xy"> entschieden.
Datum: 17.08.2006-10:46

|
re: wie kann man daten löschen keine datei
|
Seitenanfang |
Das ist mein bisheriger Ansatz. read(STDIN, $buffer, $ENV{'CONTENT_LENGTH'}); $buffer = $ENV{"QUERY_STRING"}; @pairs = split(/&/, $buffer); foreach $pair (@pairs) { ($name, $value) = split(/=/, $pair); $value =~ tr/+/ /; $value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg; $name =~ tr/+/ /; $name =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg; $FORM{$name} = $value; }; # Das ist für das Daten abrufen ---------------------------------------- $dateialt = "test-2.txt"; $dateineu = "test-3.txt"; open(DATEIALT, "$dateialt"); open(DATENNEU, "$dateineu"); while(<DATEIALT>) { unless($FORM{delet} eq "$_") { print DATEINEU $_; } } close(DATEIALT); close(DATEINEU);
So in etwa müsste es sein GLAUB ICH :-) Gruß
Datum: 17.08.2006-11:29

|
re: wie kann man daten löschen keine datei
|
Seitenanfang |
| Bitte verwende CGI.pm. Die Art die zum Auslesen der Formularparameter verwendest ist veraltet, unsicher und außerdem zu lang ;) Aus
read(STDIN, $buffer, $ENV{'CONTENT_LENGTH'}); $buffer = $ENV{"QUERY_STRING"}; @pairs = split(/&/, $buffer); foreach $pair (@pairs) { ($name, $value) = split(/=/, $pair); $value =~ tr/+/ /; $value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg; $name =~ tr/+/ /; $name =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;$FORM{$name} = $value; };
wird
use CGI; my $cgi = CGI->new(); my %FORM = $cgi->Vars();
Du öffnest keine der Dateien zum schreiben und Du verwendest keine Fehlerabfrage. Aus
open(DATEIALT, "$dateialt"); open(DATENNEU, "$dateineu");
sollte
open(DATEIALT,'<', $dateialt) or die $!; open(DATENNEU, '>',$dateineu) or die $!;
werden. Ausserdem hängt beim Einlesen noch das zeilenende-Zeichen dran, bei dem Namen aus dem Formular aber nicht. aus unless($FORM{delet} eq "$_") { print DATEINEU $_; }
muss also
chomp $_ unless($FORM{delet} eq $_) { print DATEINEU $_; }
werden
Datum: 17.08.2006-17:05

|
re: wie kann man daten löschen keine datei
|
Seitenanfang |
| das geht am einfachsten mit Tie::File. doku siehe CPAN.
Datum: 16.08.2006-10:13

|
re: wie kann man daten löschen keine datei
|
Seitenanfang |
| Hallo, also ich habe jetzt einen Formular in HTML erstellt, welches ich mit PERL verknüpft habe bzw. andersrum. in einer Hauptseite stehen alle Daten die ich in der Datei(Bsp.test.txt) habe. Nun kann ich jetzt wählen ob ich neue Daten hinzufügen möchte.(Das ist kein problem hab es schon hinbekommen). Desweiteren sollte ich noch die Möglichkeit habe einige Daten zu löschen. Aber wie ???????????? (hatte überlegt einen vergleich zu erstellen, dann alle daten in die neue datei hinzuzufügen ohne den wert der davor zum löschen selektiert wurde, (Aber das habe ich auch nicht hinbekommen). Also jetzt wie kann ich die Aufgabe lösen. Danke schonmal für die Lösungen. MFG
Datum: 16.08.2006-16:53

|