hilfdirselbst.ch
Facebook Twitter gamper-media

"Geht nicht" ist keine gültige Fehlermeldung!

Neuling
Beiträge: 8
1. Jan 2004, 11:31
Beitrag #1 von 5
Bewertung:
(861 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

Schreiben in Datei


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 Top
 
X
oesi50  A  S
Beiträge: 2315
1. Jan 2004, 12:07
Beitrag #2 von 5
Beitrag ID: #63948
Bewertung:
(861 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

Schreiben in Datei


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] Top
 
Neuling
Beiträge: 8
1. Jan 2004, 12:20
Beitrag #3 von 5
Beitrag ID: #63949
Bewertung:
(861 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

Schreiben in Datei


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)
Top
 
oesi50  A  S
Beiträge: 2315
1. Jan 2004, 12:24
Beitrag #4 von 5
Beitrag ID: #63950
Bewertung:
(861 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

Schreiben in Datei


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)
Top
 
Neuling
Beiträge: 8
1. Jan 2004, 12:45
Beitrag #5 von 5
Beitrag ID: #63951
Bewertung:
(861 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

Schreiben in Datei


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