Das Notes Forum

Lotus Notes / Domino Sonstiges => Java und .NET mit Notes/Domino => Thema gestartet von: fritandr am 08.09.03 - 12:01:29

Titel: Ausgabe formatieren
Beitrag von: fritandr am 08.09.03 - 12:01:29
Hallo,

auf die Gafahr hin, daß Ihr mich steinigt. Ich möchte gerne mit Java eine simple Multiplikationstabelle am Bildschirm (Console) ausgeben. Das hat zunächst mal nichts mit Notes zu tun und soll es auch nicht haben. Ich spiele nur ein bischen mit den Möglichkeiten von Java und nehme dazu bekannte Beispiele aus anderen Programmierumgebungen (wie COBOL oder C), die ich versuche in Javacode umzusetzen.

Dazu habe ich bis jetzt folgenden Quelltext.
-----
/* Einmaleins.java */
/* Es soll eine Multiplikationstabelle am Bildschirm ausgegben werden */

import java.text.*;

public class Einmaleins
{
   public static void print(double value, String format)
   {
      DecimalFormat df = new DecimalFormat(format);
      System.out.print(df.format(value));
   }   

   public static void main(String[] args)
   {
      int innen = 0;
      int aussen = 0;

      for (aussen = 1; aussen <= 10; ++aussen) {
         System.out.println("\n");
         for (innen = 1; innen <= 10; ++innen) {
            print(aussen * innen, "  000");
         }
      }
   }
}
-----

Jetzt zu meinem Problem. Es wird am Bildschirm eine Tabelle angezeigt. An dieser Tabelle stören mich die führenden Nullen. Diese führenden Nullen wollte ich gerne entfernen. Leider bekomme ich das mit "DecimalFormat" so nicht hin.
Frage: Gibt es die Möglichkeit, meine Tabelle mit Java Standardmitteln vernünftig zu formatieren oder muß ich mir dazu selbst was schreiben?

Ich bin mir übrigens der Tatsache bewusst, daß das schnell zu einem nicht trivialen Problem werden kann, wenn ich an proportionale/nicht-proportionale Schriftarten, ... denke. ImMoment möchte ich nur eine kleine Lösung für die Console.

Vielleicht hat einer von Euch schon mal solch eine "Stringformatierung" gemacht?
Bin für jede Anregung dankbar. Wo kann/muß ich suchen?

Viele Grüße
Andreas
Titel: Re:Ausgabe formatieren
Beitrag von: Axel Janssen temp am 09.09.03 - 09:11:44
Warum sollte dich jemand steinigen. Obwohl die Verunsicherung rund um dieses Forum auch wiederum einen gewissen Charme hat.

Ohne DecimalFormat. Auf die Schnelle.



Hier ist meine Lösung:
Code
/* EinmalEins.java
* Created on 09.09.2003
*/

/**
* Es soll eine Multiplikationstabelle am Bildschirm ausgegben werden
*
* @author Axel Janssen
* @version 1.0, 09.09.2003
*/

import java.text.*;

public class EinmalEins {
   /** Zeichen pro Zelle der Tabelle */
   private static final int WIDTH_PRINTED_CELL = 4;

   /** alte Methode */
   public static void print(double value, String format) {
      DecimalFormat df = new DecimalFormat(format);
      System.out.print(df.format(value));
   }

   /** neue Methode */
   public static void otherPrint(double value) {
      // casting: double nicht benötigt. 
      int valInt = (int) value;
      String valString = "" + valInt;
      // Auffüllen der Leerstellen. 
      for (int i = valString.length(); i <= WIDTH_PRINTED_CELL; i++) {
         System.out.print(" ");
      }
      System.out.print(valString);

   }

   public static void main(String[] args) {
      int innen = 0;
      int aussen = 0;

      for (aussen = 1; aussen <= 10; ++aussen) {
         System.out.println("\n");
         for (innen = 1; innen <= 10; ++innen) {
            //print(aussen * innen, "  000");
            otherPrint(aussen * innen);
         }
      }
   }
}


Gruß Axel
Titel: Re:Ausgabe formatieren
Beitrag von: fritandr am 09.09.03 - 10:37:59
Hallo Axel,

vielen Dank für Deine Hilfe.

Ich habe mich in der Java-Hilfe schon dumm und dämlich gesucht, bevor ich hier gepostet habe. Deshalb bin ich auch nicht überrascht, daß ich das wohl in einem solchen Fall tatsächlich selbst machen muß.

Die Multiplikationstabelle ist nur ein ganz kleines Beispiel. Trotzdem kann man beispielsweise an Deiner Methode otherPrint() schon ein paar Nettigkeiten (Konvertierung int <-> string, ...) sehen. Das ist sicher ein Minibeispiel, aber es hilft mir weiter.

Viele Grüße
Andreas
Titel: Re: Ausgabe formatieren
Beitrag von: Alois am 14.10.05 - 11:09:37
habe bisher kein Ahnung von Java-Agente und wollte es mir ein bisschen anschauen...

Jetzt habe ich einfach den Code (EinMalEins) kopiert und in ein Test Datenbank (local) eingefügt. Das Kompilieren und Ausführen der Skript ist kein Problem... Anscheinend...
aber ich bekomme kein Ausgabe  :'(

Ich habe mein lokale notes.nsf angeschaut: nichts
habe in notes ini den "Console_LogLevel" auf 5 gesetzt....
Java ist zugelassen...

Also kein Ahnung wo diese System.out.println landet...

Für euch sicher kein Problem aber ich habe schon 30 Min verbracht und immer noch kein Zeichen zu sehen.
Titel: Re: Ausgabe formatieren
Beitrag von: flaite am 14.10.05 - 11:25:51
Das ist eine Standalone Klasse und nichts Notes-Spezifisches.
Titel: Re: Ausgabe formatieren
Beitrag von: Alois am 14.10.05 - 11:38:27
danke kennwort aber mit diese Antwort kann ich nichts anfangen...

muss ich wa in mein Code einfügen oder ein Einstellung in Notes ändern?
Titel: Re: Ausgabe formatieren
Beitrag von: fritandr am 14.10.05 - 11:59:47
Hallo Alois,

kennwort will damit zum Ausdruck bringen, daß das o.g. Beispiel ausschließlich dafür gedacht ist, außerhalb Notes zu laufen.
Das Beispiel kannst Du so erstmal gar nicht unter Notes ablaufen lassen.

Viele Grüße
Andreas
Titel: Re: Ausgabe formatieren
Beitrag von: flaite am 14.10.05 - 12:19:04
Man kann das schon in einen Agenten einfügen.
Man muß nur eben wissen wie.

Du kannst beispielsweise die Klasse importieren (über Projekt bearbeiten-Button in Notes oder Neue Klasse Button und dort den Code reinkopieren) und dann im von Notes vorgenerierten

try

String [] dummy = {};
EinmalEins.main (dummy);

Ich seh es aber als ein solches rumdaddeln als keine zielführende Methode an, um eine Programmiersprache mit einem für den Fragesteller offensichtlich neuen Paradigma (objektorientiert) zu lernen.

Kauf dir einfach ein Java Einführungsbuch.
Ansonsten ist das so ähnlich als wenn PDS Leute über wirtschaftspolitische Themen reden ->
es schwankt je nach meiner Laune zwischen ärgerlich und unfreiwillig komisch.

Ich kauf mir z.B. für Ruby auch ein Buch und stelle dann Fragen, die den Antwortern weniger Mühe bereiten.

Axel
Titel: Re: Ausgabe formatieren
Beitrag von: Alois am 14.10.05 - 12:34:19
kennwort: diesmal kann ich was mit dein Antwort anfangen  :D

Das ist schon klar dass einfach nicht so gestartet werden kann.... mir interessiert momentan nur die Ausgabe (Zwecks debuggen). Da nützt mir ein Java Buch nur bedingt da ich schon den system.out.println in meine DOS Fenster habe, bzw mit alert bisher immer gut zurecht gekommen bin.

Also Klartext: Wo ist mein Ausgabe? und wie kann ich diese system.out.println im Log oder auf den Bildschirm umleiten?
Titel: Re: Ausgabe formatieren
Beitrag von: animate am 14.10.05 - 12:43:13
Das sollte im Normalfall auf der Java-konsole von Notes ausgegeben werden. Ist irgendwo im Menü File bzw. Datei zu finden.

Was heißt auf den Bildschirm umleiten?
Ins Log umleiten kannst du z.B. mit Hilfe der Notes Log-Klasse