Schrift
[thread]920[/thread]

Zeilen lesen und ausgeben?: Zeilen lesen und ausgeben?

Leser: 1


<< |< 1 2 >| >> 13 Einträge, 2 Seiten
BlackExe
 2007-04-29 22:19
#9922 #9922
User since
2007-03-25
49 Artikel
BenutzerIn
[default_avatar]
Hallo Leute ... :-))

Wolle Euch mal fragen, wie man den Inhalt aus einer .txt oder .dat Datei, Zeile für Zeile in einem Datentyp einließt und ausgibt?

Also, ich bin da jetzt schon soweit das ich die erste Zeile in "Skalar"
speichern und ausgeben kann.

//Zum nachvollziehen mal der Code ...
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#!C:\perl\bin\perl.exe
##!/usr/bin/perl -T
use CGI::Carp qw(fatalsToBrowser);
use strict;
use CGI qw(param url);

use HTML::Template;
my $template = HTML::Template->new(filename => './template.tmpl');

print "Content-type: text/html\n\n";

my $datei = "info.dat";
open(FILE, "< $datei");
my $test = (<FILE>);

close FILE;

$template->param(
test => $test,);

print $template->output();


Hat jemand vieleicht ein Tipp oder ein Link für mich, würde mich sehr darüber freuen ... :-))




Gruß /BlackExe ... :-))\n\n

<!--EDIT|BlackExe|1177870875-->
Glaube denen, die die Wahrheit suchen, und zweifle an denen, die sie gefunden haben.
MisterL
 2007-04-29 22:38
#9923 #9923
User since
2006-07-05
334 Artikel
BenutzerIn
[default_avatar]
Hier findet sich ein Beispielcode, der Daten als Hash speichert: http://home.arcor.de/MisterL_Coder/perl_einlesen.png
Der Inhalt der Template.tmpl bleibt übrigens auch unklar...;-)

Gruss MisterL
“Perl is the only language that looks the same before and after RSA encryption.”
renee
 2007-04-29 23:38
#9924 #9924
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
In welchen Datentyp hättest Du es denn gerne?

Code: (dl )
1
2
3
4
5
open my $fh, '<', $file or die $!;
my @lines = <$fh>;
close $fh;

print $_ for @lines
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/
BlackExe
 2007-04-30 02:42
#9925 #9925
User since
2007-03-25
49 Artikel
BenutzerIn
[default_avatar]
Hallo ... :-)

Sorry, hatte vergessen zuschreiben das ich die Zeilen in "Array" einlesen wollte.
(template.tmpl // <!-- TMPL_VAR NAME=test --> )

@MisterL, @renee
Danke Euch, für die Informationen und Eure Hilfe. :-)

Ich habe da jetzt mal ein wenig getestet und bin zum Ergebnis gekommen.
Schöne Sache ... :-)

Code: (dl )
1
2
3
4
5
open(FILE, "< $datei1") or die("$!");
my @main = <FILE>;
close(FILE) or die("$!");

my $main = "@main";


PS. "Sichere CGI-Programmierung in Perl", habe ich bisher nur diesen Link gefunden, [http://www.codito.de/text/perlcgi.html].
Hat vieleicht einer von Euch noch ein paar Informationen darüber?



Gruß /BlackExe ... :-)\n\n

<!--EDIT|BlackExe|1177887138-->
Glaube denen, die die Wahrheit suchen, und zweifle an denen, die sie gefunden haben.
bloonix
 2007-04-30 11:38
#9926 #9926
User since
2005-12-17
1615 Artikel
HausmeisterIn
[Homepage]
user image
Salut BlackExe,

[quote=BlackExe,30.04.2007, 00:42]
Code: (dl )
1
2
3
4
5
open(FILE, "< $datei1") or die("$!");
my @main = <FILE>;
close(FILE) or die("$!");

my $main = "@main";
[/quote]
Wieviele Kopien brauchst du denn noch? Du hast den Inhalt der ganzen
Datei dann einmal in @main und dann noch in $main. Musst du den Text
darin noch verarbeiten oder möchtest du nur eine weitere speicher-
fressende Applikation schreiben? :)

Falls du den Inhalt nicht mehr weiter verarbeiten musst, wie wäre es dann
mit:

Code: (dl )
1
2
3
open my $fh, '<', $file or die $!;
{ local $_; print while <$fh>; }
close $fh;


Ansonsten würde ich meinen es reicht entweder

my @main = <$fh>;

oder

my $main = do { local $/; <$fh>; };

Viele Grüße,
opi
What is a good module? That's hard to say.
What is good code? That's also hard to say.
One man's Thing of Beauty is another's man's Evil Hack.
BlackExe
 2007-04-30 14:40
#9927 #9927
User since
2007-03-25
49 Artikel
BenutzerIn
[default_avatar]
Hallo opi ... :-)

Also, ich möchte den Inhalt einer Textdatei, im "Script" auslesen und im "template" ausgegeben ...
Code: (dl )
1
2
$template->param(
main => $main,);

Ich bekomme das mit "Array" nicht hin. Mit "Skalar" schaffe ich es aber ich brauche ja den Inhalt vom "Array", also sieht meine Lösung nicht so Perfekt aus. :(

Danke für dein Feedback, opi ... :)
Ich werde mich jetzt mal an Deine und an Renee seine Lösung halten und versuchen mit der zuarbeiten.

Ist halt alles nicht so einfach für mich aber ich gebe mir mühe ...


Gruß /BlackExe ... :-)\n\n

<!--EDIT|BlackExe|1177929814-->
Glaube denen, die die Wahrheit suchen, und zweifle an denen, die sie gefunden haben.
bloonix
 2007-04-30 14:56
#9928 #9928
User since
2005-12-17
1615 Artikel
HausmeisterIn
[Homepage]
user image
aber du brauchst das Template doch garnicht einzulesen... das macht
HTML::Template doch schon für dich mit

Code: (dl )
my $template = HTML::Template->new(filename => './template.tmpl');
What is a good module? That's hard to say.
What is good code? That's also hard to say.
One man's Thing of Beauty is another's man's Evil Hack.
renee
 2007-04-30 15:14
#9929 #9929
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Er liest ja nicht das Template ein, sondern den Inhalt für's Template.

Entweder kannst Du es so machen:
Code (perl): (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
#!C:\perl\bin\perl.exe
##!/usr/bin/perl -T
use CGI::Carp qw(fatalsToBrowser);
use strict;
use CGI qw(param url);

use HTML::Template;
my $template = HTML::Template->new(filename => './template.tmpl');

print "Content-type: text/html\n\n";

my $datei = "info.dat";
my $test;

open(FILE, "< $datei");
{
    local $/;
    $test = <FILE>;
}
close FILE;

$template->param(
test => $test,);

print $template->output();


Du kannst es aber auch etwas anders machen. Indem Du statt <!-- TMPL_VAR NAME=test --> einfach <!-- TMPL_INCLUDE NAME=info.dat --> nimmst.
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/
BlackExe
 2007-04-30 15:35
#9930 #9930
User since
2007-03-25
49 Artikel
BenutzerIn
[default_avatar]
Hallo Leute ... :-)

Wollte ja an bestimmten stellen im "Template" Ausgaben haben,
das "HTML::Template" Beispiel womit ich arbeite, habe ich von der Seite:
[http://renee-baecker.de/]

@renee
Die Beispiele sehen ja super aus, habe ich gleich mal getestet. :)
Das ist echt Super mit: "<!-- TMPL_INCLUDE NAME=info.dat -->"
Da spare ich richtig viel Code. :)

Vielen, vielen Dank :)


Gruß /BlackExe ... :-)\n\n

<!--EDIT|BlackExe|1177933581-->
Glaube denen, die die Wahrheit suchen, und zweifle an denen, die sie gefunden haben.
bloonix
 2007-04-30 15:41
#9931 #9931
User since
2005-12-17
1615 Artikel
HausmeisterIn
[Homepage]
user image
Einen Tipp noch so nebenbei... HTML::Template kann leider nicht besonders
viel und bestimmte Daten müssen mühselig zusammengesetzt werden
wie zum Beispiel AoHs für Tabellen etc. Da lohnt wirklich ein Blick in
CPAN:HTML::Template::Compiled oder CPAN:Template.
What is a good module? That's hard to say.
What is good code? That's also hard to say.
One man's Thing of Beauty is another's man's Evil Hack.
<< |< 1 2 >| >> 13 Einträge, 2 Seiten



View all threads created 2007-04-29 22:19.