Schrift
[thread]6354[/thread]

perl code um text files unix2dos konvertieren (Seite 2)

Leser: 2


<< |< 1 2 3 4 >| >> 38 Einträge, 4 Seiten
cc
 2004-06-21 11:24
#83616 #83616
User since
2004-01-09
55 Artikel
BenutzerIn
[default_avatar]
Code: (dl )
1
2
3
4
5
open FILE, '<', $file or die "open $file $!";
binmode FILE, 'encoding(cp850)' or die $!;
$ftp->put (\*FILE) or die "$server: cannot put $file: " . $ftp->message;

$ftp->put(local,server);

syntax error at conv.cgi line 30, near "local,"
Execution of conv.cgi aborted due to compilation errors.
steffenw
 2004-06-21 11:34
#83617 #83617
User since
2003-08-15
692 Artikel
BenutzerIn
[Homepage] [default_avatar]
local war das Synonym für das Filehandle und server das für Deinen Filename, also
Code: (dl )
$ftp->put(\*FILE, $file) or die .........
$SIG{USER} = sub {love 'Perl' or die};
cc
 2004-06-21 12:29
#83618 #83618
User since
2004-01-09
55 Artikel
BenutzerIn
[default_avatar]
geht aber immer noch nicht,obwhol der pfad zum file stimmt
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
#!/usr/bin/perl -w

use strict;
use warnings;
use Net::FTP;
use Net::Netrc;

my $server = "X.X.X.X";
my $user = "user";
my $password = "password";
my $destination = "/www/ftp";
my $file = "/home/files/testfile.txt";

my $ftp = Net::FTP->new ($server, Timeout => 9000, Debug => 3);
$ftp or die "$server: cannot connect: $@";
$ftp->login ($user,$password) or die "$_: Could not login: " . $ftp->message;
$ftp->cwd($destination);

open FILE, '<', $file or die "open $file $!";
binmode FILE, 'encoding(cp850)' or die $!;
$ftp->put(\*FILE, $file) or die "$server: cannot put $file: " . $ftp->message;

$ftp->quit;


Net::FTP=GLOB(0x830bb28)<<< 220 ttn208 Microsoft FTP Service (Version 5.0).
Net::FTP=GLOB(0x830bb28)>>> user user
Net::FTP=GLOB(0x830bb28)<<< 331 Password required for user.
Net::FTP=GLOB(0x830bb28)>>> PASS ....
Net::FTP=GLOB(0x830bb28)<<< 230 User user logged in.
Net::FTP=GLOB(0x830bb28)>>> CWD /www/ftp
Net::FTP=GLOB(0x830bb28)<<< 250 CWD command successful.
Net::FTP=GLOB(0x830bb28)>>> PORT X,X,X,X,140,6
Net::FTP=GLOB(0x830bb28)<<< 200 PORT command successful.
Net::FTP=GLOB(0x830bb28)>>> STOR /home/files/testfile.txt
Net::FTP=GLOB(0x830bb28)<<< 550 /home/files/testfile.txt: The system cannot find the path specified.
X.X.X.X: cannot put /home/files/testfile.txt: /home/files/testfile.txt: The system cannot find the path specified.
Dubu
 2004-06-21 14:00
#83619 #83619
User since
2003-08-04
2145 Artikel
ModeratorIn + EditorIn

user image
1.) Willst du wirklich die DOS-Codepage 850 oder eher Windows (cp1252 fuer westl. Sprachen)?
2.) In welcher Kodierung sind denn die Textdateien unter Linux? ISO-8859-1, ISO-8859-15, UTF-8, ...? Wenn es sich aber nur um ASCII-Zeichen und keine Zeichen mit Code > 127 handelt, ist es eh gleich, da alle DOS/Windows-Kodierungen den ASCII-Teil gleich haben.
3.) Geht es dir nur um die Zeilenumbrueche oder auch um Umlaute oder vielleicht seltene Sonderzeichen?
4.) Fuer das Problem mit den Zeilenumbruechen solltest du esskars Vorschlag aus deinem anderen Thread beherzigen und $ftp->ascii benutzen.
steffenw
 2004-06-21 15:54
#83620 #83620
User since
2003-08-15
692 Artikel
BenutzerIn
[Homepage] [default_avatar]
Quote
put ( LOCAL_FILE [, REMOTE_FILE ] )

Put a file on the remote server. LOCAL_FILE may be a name or a filehandle. If LOCAL_FILE is a filehandle then REMOTE_FILE must be specified. If REMOTE_FILE is not specified then the file will be stored in the current directory with the same leafname as LOCAL_FILE.
Returns REMOTE_FILE, or the generated remote filename if REMOTE_FILE is not given.

NOTE: If for some reason the transfer does not complete and an error is returned then the contents that had been transfered will not be remove automatically.


Probiere mal FILE anstatt \*FILE, ich habe das auch noch nicht gemacht.\n\n

<!--EDIT|steffenw|1087818925-->
$SIG{USER} = sub {love 'Perl' or die};
cc
 2004-06-21 16:05
#83621 #83621
User since
2004-01-09
55 Artikel
BenutzerIn
[default_avatar]
[quote=Dubu,21.06.2004, 12:00]1.) Willst du wirklich die DOS-Codepage 850 oder eher Windows (cp1252 fuer westl. Sprachen)?
2.) In welcher Kodierung sind denn die Textdateien unter Linux? ISO-8859-1, ISO-8859-15, UTF-8, ...? Wenn es sich aber nur um ASCII-Zeichen und keine Zeichen mit Code > 127 handelt, ist es eh gleich, da alle DOS/Windows-Kodierungen den ASCII-Teil gleich haben.
3.) Geht es dir nur um die Zeilenumbrueche oder auch um Umlaute oder vielleicht seltene Sonderzeichen?
4.) Fuer das Problem mit den Zeilenumbruechen solltest du esskars Vorschlag aus deinem anderen Thread beherzigen und $ftp->ascii benutzen.[/quote]

hallo Dubu

1) eher cp1252, aber würde gerne beide probieren

2.) soviel mir bekannt ist, haben die Text dateien keine Kodierung.
dies hängt nur vom Editor ab, mit dem die datei kreiert wurde.

3.) beides

4.) habe probiert und bekomme nach dem transfer folgende sonderzeichen:
Code: (dl )
1
2
	
ð¼HÁ4

oder
Code: (dl )
1
2
3
4
5
6
7
8
9
	
@VÁ4
©ãÔÀÔSvVW>¢ &‡4&…&”&‚Æ~µáß üc¯øÇÀÒj×úÛß]ŨÉlÓ¤"T,d
&Š &\WªÙÙ-ÔLÌÌÄdîÉÉ­ÓR9¥O&‘êk³ÉS¼z&Tç¹µ7 !&—æQë&‚Aê1ßúT1iÐù -&“ÏTz&.Õn-6ÎB¨äôïõ¡&“Ía-#2±&Ô&’~UÝØUÕcµ5aE*Fá· qùSÏãYòØ%.fdj µÔ&ï&ž&ŸL&Šø+R±:.³¬hÐ
v&Õª&„p#&™Õyô
¾üÕ£ ç êkâ&Ÿ&Žv
ÃãO&Š¡,S\Gwõó`&Øÿßeÿ*ó1tïº=üª³I¤÷þ¿S&‰h¼ÔIdf&í -Íue1j&Š&„)h@ rs¸ú&Ž+&—
V00A+ëÆ=k£ð9Û¨ÍÏü±R8éÏZùüá/ªMú~hú¼&›ÞÆÂþ&&“;v!D&Œ[&ŽFiF )ÇQ&ŠEÚá&Ž;ä&‘éKÉV ÿë×Á3ô
Üuü
\n\n

<!--EDIT|cc|1087820843-->
cc
 2004-06-21 16:12
#83622 #83622
User since
2004-01-09
55 Artikel
BenutzerIn
[default_avatar]
[quote=steffenw,21.06.2004, 13:54]
Quote
put ( LOCAL_FILE [, REMOTE_FILE ] )

Put a file on the remote server. LOCAL_FILE may be a name or a filehandle. If LOCAL_FILE is a filehandle then REMOTE_FILE must be specified. If REMOTE_FILE is not specified then the file will be stored in the current directory with the same leafname as LOCAL_FILE.
Returns REMOTE_FILE, or the generated remote filename if REMOTE_FILE is not given.

NOTE: If for some reason the transfer does not complete and an error is returned then the contents that had been transfered will not be remove automatically.


Probiere mal FILE anstatt \*FILE, ich habe das auch noch nicht gemacht.[/quote]
hallo steffenw

habe probiert, bekomme aber auf dieser linie folgende fehlermeldung:

Bareword "FILE" not allowed while "strict subs" in use at conv.cgi line 30
Execution of conv.cgi aborted due to compilation errors.

eignetlich \*FILE scheint mir logisch und wundert mich auch,
dass nicht funktioniert.

gruss
cc\n\n

<!--EDIT|cc|1087820256-->
steffenw
 2004-06-21 16:21
#83623 #83623
User since
2003-08-15
692 Artikel
BenutzerIn
[Homepage] [default_avatar]
Nu weßschs o ni meer.

übersetzt von Sächsisch in Deutsch:

Nun weiß ich es auch nicht mehr.
$SIG{USER} = sub {love 'Perl' or die};
Oesi50
 2004-06-21 18:10
#83624 #83624
User since
2004-05-15
33 Artikel
BenutzerIn
[default_avatar]
hallo Steffen,
versuchs mal so:

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

use strict;
use warnings;
use Net::FTP;
use Net::Netrc;

my $server = "X.X.X.X";
my $user = "user";
my $password = "password";
my $destination = "/www/ftp";
my $file = "/home/files/testfile.txt";

my $ftp = Net::FTP->new ($server, Timeout => 9000, Debug => 3); $ftp or die "$server: cannot connect: $@";
$ftp->login ($user,$password) or die "$_: Could not login: " . $ftp->message;
$ftp->cwd($destination);
if (-f "$file") {
$ftp->ascii;
my $remote_name = $ftp->put($file);
$remote_name or die "$server: cannot put $file: " . $ftp->message;
}

$ftp->quit;


[edit: ist repariert]\n\n

<!--EDIT|Oesi50|1087845383-->
cc
 2004-06-21 19:31
#83625 #83625
User since
2004-01-09
55 Artikel
BenutzerIn
[default_avatar]
hi Oesi50

bekomme aber viele errors:

Scalar found where operator expected at test.cgi line 19, near ") $ftp"
(Missing operator before $ftp?)
syntax error at test.cgi line 19, near ") $ftp "
Global symbol "$ftp" requires explicit package name at test.cgi line 19.
Global symbol "$remote_name" requires explicit package name at test.cgi line 24.
Global symbol "$remote_name" requires explicit package name at test.cgi line 25.
Execution of test.cgi aborted due to compilation errors.
<< |< 1 2 3 4 >| >> 38 Einträge, 4 Seiten



View all threads created 2004-06-20 04:16.