Toon posts:

[perl] wie ziet de fout???

Pagina: 1
Acties:

Verwijderd

Topicstarter
Hai, ik ben nu een bestaand script aan het uitbreiden, en nu ben ik bezig met language files.

zoals ik het nu hep, worden er naar script 14 veldjes gestuurt, die van 1 t/m 14 genummerd zijn. ook stuurt ie het veld "laatste" mee met dezelfde waarde als de naam van het laatste veld (het hoogste cijfer dus)

nu print ik in een loopje netjes al die waarden weg in een bestand. het bestand heeft meerdere regels voor (meerdere modules). Ik edit dus de regels voor 1 module, en de regel van de andere module print ik er dan onder. maar nu moet achter de regel die ik edit dus een newline komen.

alleen dat werkt dus niet, hij print gewoon een | ipv. newline, dus is $i niet hetzelfde als $FORM{'laatste'}
na de loop staat $i op 14, terwijl als ik ze na de loop print, ze alletwee 14 (ja, zonder space/newlines) zijn.
code:
1
2
3
4
5
6
7
8
9
10
11
12
  open(HTML,">$config_ddir/text/$Cookies{'Logocash_id'}.cgi") or &cgierror("Kan geen nieuw databestand aanmaken.");
  for ($i = 0; $i < $FORM{'laatste'}; $i++) {
    print HTML $FORM{$i};
    if ($i ne $FORM{'laatste'}) {
    print HTML "|";
    }
    else {
    print HTML "\n";
    }
  }
  print HTML $standart[1];
  close(HTML);

Iemand een idee want ik kom er eg nie uit,
en dat terwijl het gewoon om zo'n simpel ifje gaat |:(

wie ziet de vaut?

Verwijderd

ne is voor het vergelijken van strings != voor getallen

Verwijderd

Topicstarter
danku!
!= is toch ook voor strings???
ik dacht dat ne gewoon een synoniem was.....

$^((@)$!^#@$*

hij doet et nog nie
ik begin het langzaam op te geve :(

  • Grum
  • Registratie: Juni 2001
  • Niet online
Perl:

==/!= voor scalars
eq/ne voor strings

waarom gebruik je eigelijk hashes met ints als keys ? :+

Verwijderd

Topicstarter
$FORM{'laatste'} = $FORM{'laatste'} + 0;

gebruiken zodat ik 2 integers krijg werkt ookal nie :'(
Op donderdag 07 maart 2002 19:42 schreef Grum het volgende:
waarom gebruik je eigelijk hashes met ints als keys ? :+
omdat die hash alle vars uit me formulier bevat.

  • Grum
  • Registratie: Juni 2001
  • Niet online
$FORM{'laatste'} = $FORM{'laatste'} + 0;

het enigste wat dit zou doen .. als er bv 02 in zou staan zou het 2 worden .. meer niet :)

0 appeenden is gewoon * 10 of . '0' .. kinda DOH :?

Verwijderd

Topicstarter
ik dacht dat et misschien van een string een integer werd op die manier.... (dat noemt men zelfinitiatief, dat het nergens op slaat is een 2e)

maar ik ben er dus nogsteeds nie uit

  • Grum
  • Registratie: Juni 2001
  • Niet online
nu volg ik je niet meer .. sorry :)

Verwijderd

Topicstarter
mjah ik volg denk ook mezelf nie meer,
maar is er misschien een andere manier om het aan te pakke?

  • noMSforme
  • Registratie: Oktober 2000
  • Laatst online: 10-03-2022
wel eens van chomp() gehoord.
gebruik chomp in de vergelijikng en het gaat werken.
zie ook:
www.perldoc.com

Ben ik nu de weg kwijt dan. Ik dahct uit je stukje te lezen dat de vergelijking niet lukte door een NewLine.
Als je een newline wilt printen is het \n.
Ik zal het straks eens runnen hier.
Kijke wattie doet.

Verwijderd

Topicstarter
uhm nou ik denket nie, want een hidden field heeft geen newline, en een counter ook nie

als ik ze print is het ook zonder newline
duz met chomp gaat et ook nie lukken helaas.

Verwijderd

Topicstarter
/me : woei

het werkt!
vraag me niet hoe, dit is echt te ranzig:
code:
1
2
3
4
5
6
7
8
9
10
11
  open(HTML,">$config_ddir/text/$Cookies{'Logocash_id'}.cgi") or &cgierror("Kan geen nieuw databestand aanmaken.");
  for ($i = 0; $i < $FORM{'laatste'}; $i++) {
    print HTML "$FORM{$i}";
    $volgende = $i + 2;
    chomp($FORM{$volgende});
    if ($FORM{$volgende} ne "") {
    print HTML "|";
    }
  }
  print HTML "\n$standart[1]";
  close(HTML);

niet dat jullie er iets aan hebben, ofzow.

  • Soultaker
  • Registratie: September 2000
  • Laatst online: 15:13
Het lijkt me dat je je tellertje op 1 moet laten beginnen (aangezien je zegt dat je velden genummerd zijn van 1 tot en met 14) en als je dan ne door != vervangen hebt zou het gewoon moeten werken. Converteren naar ints/weghalen van newlines is zinloos, dat gaat vanzelf goed.

Verwijderd

Topicstarter
ze lopen van 0 tot 14 en met die != werkt het niet,
nouja, het werkt nu, dus nie meer aankomen :+
Pagina: 1