|
| linieskift? Fra : CykelSmeden fra Aalb~ |
Dato : 01-01-02 21:07 |
|
if ($streng gt "")
{
print UD "$streng $kunde \n";
}
hvorfor får jeg også linieskift mellem $streng og $kunde ?
finn
--
--- CykelSmeden.... edb på gadeplan
og når jeg spørger, er det bare fordi jeg ved for lidt!
| |
Michael Legart (01-01-2002)
| Kommentar Fra : Michael Legart |
Dato : 01-01-02 21:22 |
|
CykelSmeden fra Aalborg <outlook@acnord.slet.dk> wrote:
> if ($streng gt "")
> {
> print UD "$streng $kunde \n";
> }
> hvorfor får jeg også linieskift mellem $streng og $kunde ?
print UD "$streng\n $kunde \n";
måske? :)
--
Med venlig hilsen / Kind regards
Michael Legart, System Developer - Tiscali A/S
Peter Bangs Vej 26, DK-2000 Frederiksberg - http://www.tiscali.dk
Phone +45 3814 7000, Fax +45 3814 7007
| |
Adam Sjøgren (01-01-2002)
| Kommentar Fra : Adam Sjøgren |
Dato : 01-01-02 21:27 |
|
On Tue, 01 Jan 2002 20:22:21 GMT, Michael Legart wrote:
>> if ($streng gt "") { print UD "$streng $kunde \n";
>> }
>> hvorfor får jeg også linieskift mellem $streng og $kunde ?
> print UD "$streng\n $kunde \n";
> måske? :)
Eller - hvis man læser "hvorfor", som cykelsmeden skriver, og ikke
"hvordan" (som jeg også først gjorde) - måske fordi $streng indeholder
et linieskift til sidst (eller $kunde et først, men det er mindre
almindeligt).
Funktionen "chomp" kan være en smeds ven...
Mvh.
--
"But how can we appease the mighty snow demons if we Adam Sjøgren
don't sacrifice any leaves? We'll have a warm winter!" asjo@koldfront.dk
| |
CykelSmeden fra Aalb~ (01-01-2002)
| Kommentar Fra : CykelSmeden fra Aalb~ |
Dato : 01-01-02 22:14 |
|
"Adam Sjøgren" <asjo@koldfront.dk> skrev i en meddelelse
news:87zo3xq0lg.fsf@virgil.koldfront.dk...
> Eller - hvis man læser "hvorfor", som cykelsmeden skriver, og ikke
> "hvordan" (som jeg også først gjorde) - måske fordi $streng indeholder
> et linieskift til sidst (eller $kunde et først, men det er mindre
> almindeligt).
>
> Funktionen "chomp" kan være en smeds ven...
Jeg kunne ikke få den til at virke, men chop er måske en bedre ven?
$streng = $ord[-1];
$streng = chop( $streng);
giver desværre en helt tom $streng, men jeg gør det nok forkert
de er begge delstrenge, dvs uden cl/lf, men $streng har været gennem
konvertering til array, og det vil jeg ændre grundet Morten B's tidligere
forslag.
TAK!
finn
| |
CykelSmeden fra Aalb~ (01-01-2002)
| Kommentar Fra : CykelSmeden fra Aalb~ |
Dato : 01-01-02 23:41 |
|
"CykelSmeden fra Aalborg" <outlook@acnord.SLET.dk> skrev i en meddelelse
news:3c3224ef$0$5481$edfadb0f@dspool01.news.tele.dk...
>
> "Adam Sjøgren" <asjo@koldfront.dk> skrev i en meddelelse
> news:87zo3xq0lg.fsf@virgil.koldfront.dk...
mit sidste indlæg var som i ser forkert. chomp virker på min redhat, jeg får
bare en fejl i den solarisversion jeg skulle bruge scriptet på:
# /u2/oracle.733/ows/3.0/perl/bin/perl -v
This is perl, version 5.003 with EMBED
built under solaris at May 4 1997 15:15:58
+ suidperl security patch
Copyright 1987-1996, Larry Wall
jeg kan heller ikke få scriptet til at virke med
#!/u2/oracle.733/ows/3.0/perl/bin/perl
i første linie;(
finn
> --- CykelSmeden.... edb på gadeplan
> og når jeg spørger, er det bare fordi jeg ved for lidt!
>
| |
CykelSmeden fra Aalb~ (01-01-2002)
| Kommentar Fra : CykelSmeden fra Aalb~ |
Dato : 01-01-02 23:56 |
|
Har alt til at virke nu. - tak for hjælpen
split() putter åbenbart selv linieskift på hvert element!
finn
> > --- CykelSmeden.... edb på gadeplan
> > og når jeg spørger, er det bare fordi jeg ved for lidt!
> >
>
>
| |
Lars Balker Rasmusse~ (02-01-2002)
| Kommentar Fra : Lars Balker Rasmusse~ |
Dato : 02-01-02 13:57 |
|
"CykelSmeden fra Aalborg" <outlook@acnord.SLET.dk> writes:
> split() putter åbenbart selv linieskift på hvert element!
Det gør den ihvertfald ikke...
--
Lars Balker Rasmussen "S.M.R.T."
| |
CykelSmeden fra Aalb~ (02-01-2002)
| Kommentar Fra : CykelSmeden fra Aalb~ |
Dato : 02-01-02 14:22 |
|
"Lars Balker Rasmussen" <lars@balker.org> skrev i en meddelelse
news:u4rm4j4h9.fsf@laphroaig.balker.org...
> "CykelSmeden fra Aalborg" <outlook@acnord.SLET.dk> writes:
> > split() putter åbenbart selv linieskift på hvert element!
>
> Det gør den ihvertfald ikke...
Det er jeg ikke i tvivl om du ved mere om end jeg
min konklusion kommer af følgende hvor $linie maksimalt kan have cr/lf i
halen:
-------snip
$kunde = substr( $linie,$fpos , $minpos ) ;
@ord = split('=',$linie) ;
chomp @ord ;
$streng = $ord[-1];
#$streng = chomp( $streng); vil ikke virke? (syntaksfejl under compilering)
if ($streng gt "")
{
print UD "$streng << $kunde \n";
}
--------snip
uden 'chomp @ord ; ' får jeg linieskift i UD-printet efter $streng ???
men der er sikkert noget jeg har overset ;(
finn
| |
Lars Balker Rasmusse~ (02-01-2002)
| Kommentar Fra : Lars Balker Rasmusse~ |
Dato : 02-01-02 17:19 |
|
"CykelSmeden fra Aalborg" <outlook@acnord.SLET.dk> writes:
> min konklusion kommer af følgende hvor $linie maksimalt kan have cr/lf i
> halen:
> -------snip
> $kunde = substr( $linie,$fpos , $minpos ) ;
> @ord = split('=',$linie) ;
> chomp @ord ;
> $streng = $ord[-1];
> #$streng = chomp( $streng); vil ikke virke? (syntaksfejl under compilering)
>
> if ($streng gt "")
> {
> print UD "$streng << $kunde \n";
> }
> --------snip
> uden 'chomp @ord ; ' får jeg linieskift i UD-printet efter $streng ???
> men der er sikkert noget jeg har overset ;(
Når du starter ligner $linie noget ala: "foo blahblah=bar\n"
Når du splitter det efter '=', får du en liste med to elementer, "foo
blahblah" og "bar\n".
Når du laver chomp på den liste, fjernes $/ (The input record
separator, newline by default) fra alle medlemmer, også den sidste, så
du har en liste med "foo blahblah" og "bar", og $ord[-1] piller så
"bar" ud.
$streng = chomp($streng) virker ikke fordi det er forkert brug. Se
"perldoc -f chomp".
Fjern chomp @ord, og skriv chomp $linie før split, og det vil virke.
--
Lars Balker Rasmussen "S.M.R.T."
| |
Lars Balker Rasmusse~ (01-01-2002)
| Kommentar Fra : Lars Balker Rasmusse~ |
Dato : 01-01-02 22:00 |
|
"CykelSmeden fra Aalborg" <outlook@acnord.SLET.dk> writes:
> if ($streng gt "") {
Det var da en underlig konstruktion. Hvis du vil sikre dig at $streng
indeholder noget, skal du blot teste
if ($streng) {
den den tomme streng boolsk set er det samme som 0.
> print UD "$streng $kunde \n";
> }
>
> hvorfor får jeg også linieskift mellem $streng og $kunde ?
Michael svarede "hvordan"
"Hvorfor" kan man kun besvare hvis man ved hvor du får $streng fra.
Hvis det er fra stdin eller en fil, skal du regne med at den læser
linieskiftet med ind. Derfor skal du lave
chomp $streng;
udmiddelbart efter at du har læst den ind.
Bemærk at en tom linie i en fil stadig har et linieskift efter sig, så
den er ikke identisk med den tomme streng (før chomp altså).
--
Lars Balker Rasmussen "S.M.R.T."
| |
|
|