Stephan: verschiedenes

da ich jetzt wieder mal programmiere, häufen sich die fragen ...

1. ich habe einen zahlenwert aud einem formular übernommen, der jetzt $FORM{'betrag'} heißt. dieser betrag soll durch 2 geteilt werden. ich habe jetzt gesagt $betrag2 = $FORM{'betrag'}/2; aber daraus wurde nichts ...

2. ich möchte, da der kram später gedruckt werden soll, dass der text aus einem formularfeld genau 40 zeichen lang, also bis 40 mit leerzeichen aufgefüllt wird ... wie ist sowas möglich? (hatte an eine zählung der buchstaben und einsetzung von der anzahl leerzeichen = 40-buchstaben gedacht ...)

das wars erstmal ... ich danke für jede hife

stephan

  1. Auch Dir einen schoenen Guten Tag, Stephan!

    Ich nehme mal an, Du redest ueber Perl, so sah jedenfalls Dein Beispiel aus.

    1. ich habe einen zahlenwert aud einem formular übernommen, der jetzt $FORM{'betrag'} heißt. dieser betrag soll durch 2 geteilt werden. ich habe jetzt gesagt $betrag2 = $FORM{'betrag'}/2; aber daraus wurde nichts ...

    Sollte eigentlich so gehen. Uberpruefe, was in $FORM{'betrag'} drinsteht und was bei der Division rauskommt,
    und vergleiche es mit dem, was rauskommen sollte. Nur so koennen wir dem Fehler auf die Spur kommen.

    1. ich möchte, da der kram später gedruckt werden soll, dass der text aus einem formularfeld genau 40 zeichen lang, also bis 40 mit leerzeichen aufgefüllt wird ... wie ist sowas möglich? (hatte an eine zählung der buchstaben und einsetzung von der anzahl leerzeichen = 40-buchstaben gedacht ...)

    $formatted = sprintf('%40s', $unformatted);        # rechtsbuendig
    $formatted = sprintf('%-40s', $unformatted);        # linksbuendig

    (%s ist fuer Strings, %d fuer Zahlen. Zahlen zwischen % und Typbuchstaben geben Spaltenbreite an.)

    printf('%40s', $string);            # sofort ausgeben, nicht als String zurueckgeben

    Komplexeres Beispiel:
    $date = sprintf('%02d.%02d.%d", $day, $month, $year);
    Ergibt ein Datum der Form 06.03.2000, d.h. Jahr und Monat haben fuehrende Nullen (%02d statt %2d;
    letzteres ergaebe fuehrendes Leerzeichen).

    Bye, Calocybe

    1. Auch Dir einen schoenen Guten Tag, Stephan!

      Ich nehme mal an, Du redest ueber Perl, so sah jedenfalls Dein Beispiel aus.

      1. ich habe einen zahlenwert aud einem formular übernommen, der jetzt $FORM{'betrag'} heißt. dieser betrag soll durch 2 geteilt werden. ich habe jetzt gesagt $betrag2 = $FORM{'betrag'}/2; aber daraus wurde nichts ...

      Sollte eigentlich so gehen. Uberpruefe, was in $FORM{'betrag'} drinsteht und was bei der Division rauskommt,
      und vergleiche es mit dem, was rauskommen sollte. Nur so koennen wir dem Fehler auf die Spur kommen.

      ich hab jetzt leerzeichen vor und nach den rechenzeichen eingebaut ... es funktioniert

      trotzdem danke!

      stephan

    1. ich möchte, da der kram später gedruckt werden soll, dass der text aus einem formularfeld genau 40 zeichen lang, also bis 40 mit leerzeichen aufgefüllt wird ... wie ist sowas möglich? (hatte an eine zählung der buchstaben und einsetzung von der anzahl leerzeichen = 40-buchstaben gedacht ...)

    $a="Timothy";
    $a .= "*" x (20-length($a));

    der "x"-Operator fügt die angegebene Anzahl Zeichen an - also genau 20 - Länge von $a wird mit "*" aufgefüllt.

    Gruß
    Timothy