[GastForen Archiv Perl und CGI Schreiben in Datei

  • Suche
  • Hilfe
  • Lesezeichen
  • Benutzerliste
Archiv - Archivierte Foren
Themen
Beiträge
Moderatoren
Letzter Beitrag

Schreiben in Datei

Neuling
Beiträge gesamt: 8

1. Jan 2004, 11:31
Beitrag # 1 von 5
Bewertung:
(1119 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo zusammen,
ich habe hier ein Script, in dem ich eine Datei einlesen kann, aber ich möchte auch , dass diese Datei beschrieben werden kann.
Im Ordner habe ich noch eine Eingabe.txt und Ausgabe.txt gespeichert. Aber wenn ich z.B. Eingabe.txt einlesen will, steht in der Listbox =Hash(0x1bc5310)".Es hat aber auch schon mit Ausgabe des Textes gefunzt. Wie mach ich das?
use strict;
use FindBin '$Script';
use Tk;
my $haupt = new MainWindow;

my $links= $haupt->Frame();
$links->Label(-text => "Namen der Einlesedatei!")->pack();
my $lesedat = $links->Entry();
$lesedat->pack();
$links->Button(-text=> "Einlesen!", -command=> \&lesen)->pack(-pady=> "10");
$links->Label(-text => "Namen der Ausgabedatei!")->pack();
my $schreibdat = $links->Entry();
$schreibdat->pack();
$links->Button(-text=> "Erstellen!", -command=> \&schreiben)->pack(-pady=> "10");
$links->Button(-text=> "Beenden!", -command=>[$haupt=> 'destroy'])->pack(-pady=> "20");

my $rechts= $haupt->Frame();
$rechts->Label(-text => "Datei-Inhalt!")->pack();
my $listfeld = $rechts->Listbox();
$listfeld->pack();

$links->pack(-side => 'left');
$rechts->pack(-side => 'right');
$rechts->pack(-side => 'top');

MainLoop();
sub lesen {
open(DATEI, '<', $lesedat->get()) or die "Datei kann nicht geoeffnet werden: $!\n";
while (<DATEI>) {
chomp;
$listfeld->insert('end', $_);
}
close(DATEI);
}


Wie und wo setzte ich das Schreiben/Erstellen hin?
Schönen dank
X

Schreiben in Datei

oesi50
  
Beiträge gesamt: 2315

1. Jan 2004, 12:07
Beitrag # 2 von 5
Beitrag ID: #63948
Bewertung:
(1119 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
hi neuling

Dir fehlt noch die subroutine für das Schreiben.

häng mal das hier an Dein Programm hinten dran:

#Speichern
sub schreiben{

open(DATEI, '>', $schreibdat->get()) or die "Datei kann nicht geoeffnet werden: $!\n";
my $size = $listfeld->size;
for( my $i = 0; $i < $size; $i++){
my $text = $listfeld->get($i);
print DATEI $text,"\n";
}
close(DATEI);
}


Grüße Oesi
Ich weiß, dass ich nichts weiß... (Sokrates)


als Antwort auf: [#63946]

Schreiben in Datei

Neuling
Beiträge gesamt: 8

1. Jan 2004, 12:20
Beitrag # 3 von 5
Beitrag ID: #63949
Bewertung:
(1119 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Vielen Dank für die schnelle Antwort Oesi
Ich verstehe nur nicht, warum er bei einzulesender Datei mir nicht den Text ins Listenfeld setzt, sondern folgendes:

TkListbox=HASH(0x2e29d5c)
Ich habe doch einen Text in die Datei geschrieben.
was mach ich da falsch?
Außerdem möchte ich , dass jede Zeile in bei der Ausgabe in der Listbox nummeriert ist...

Schönen Gruß


als Antwort auf: [#63946]
(Dieser Beitrag wurde von Neuling am 1. Jan 2004, 12:23 geändert)

Schreiben in Datei

oesi50
  
Beiträge gesamt: 2315

1. Jan 2004, 12:24
Beitrag # 4 von 5
Beitrag ID: #63950
Bewertung:
(1119 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Ich habe das, was Du ins Forum gepostet hast getestet, bei mir geht's.

Die Nummerierung geht so:

sub lesen {
open(DATEI, '<', $lesedat->get()) or die "Datei kann nicht geoeffnet werden: $!\n";
my $i = 1;
while (<DATEI>) {
chomp;
my $text = "$i $_";
$listfeld->insert('end', $text);
$i++;
}
close(DATEI);
}

Grüße Oesi
Ich weiß, dass ich nichts weiß... (Sokrates)


als Antwort auf: [#63946]
(Dieser Beitrag wurde von oesi50 am 1. Jan 2004, 12:37 geändert)

Schreiben in Datei

Neuling
Beiträge gesamt: 8

1. Jan 2004, 12:45
Beitrag # 5 von 5
Beitrag ID: #63951
Bewertung:
(1119 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Daaaaaaaaaaaaaanke


als Antwort auf: [#63946]
(Dieser Beitrag wurde von Neuling am 1. Jan 2004, 12:46 geändert)
X