# Ascii Rechner



## hasan_0034 (25. Aug 2008)

Was ich machen möchte.


Ascii Rechner


Kode für die Feld, welcher Zahl in Ascii umwandelt.


```
public Calculator() 


{ int wert=0;

double sum=0;

// String definieren

String inputstr =new String("FgHi");

// String auf einzelne Zeichen zugreifen

for(int pos=0;pos<=3;pos++){

char buchstabe= inputstr.charAt(pos); // aus String einzelne Zeichen herauslösen

System.out.print(buchstabe+" ->"); // zum Test ausgeben

// Groß- oder Kleinbuchstabe

if(buchstabe>=97)wert=buchstabe-97; else wert=buchstabe-65+26;

double hochzahl=Math.abs(pos-3);

double erg=(wert*Math.pow(52, hochzahl));


sum=sum+erg;

System.out.print(erg+"Summe-->");

System.out.println(sum);

}
```



Hier die Kode für das bisscher programierte Program.


```
import java.awt.Color;
import java.awt.Dimension; 
import java.awt.GridLayout; 
import java.awt.Menu;
import java.awt.MenuBar;
import java.awt.event.ActionEvent; 
import java.awt.event.ActionListener; 

import javax.swing.BorderFactory;
import javax.swing.JButton; 
import javax.swing.JFrame; 
import javax.swing.JLabel; 
import javax.swing.JPanel; 
import javax.swing.JTextField;  

public class Calculator extends JFrame implements ActionListener 
{ 
	   private static final long   serialVersionUID   = 1L; 

	   //Anzahl der auszugebenden Stellen 
	   private int stellen = 4; 
	    
	   //Komponenten 
	   JPanel panel = new JPanel();    
	   JTextField eingabeFeld = new JTextField(""); 
	   JButton berechnenButton = new JButton("Berechnen"); 
	   JLabel ausgabeFeld = new JLabel("Ergebnis:"); 
	   JButton schliessenButton = new JButton("Schließen"); 
	   JTextField eingabeFeld2 = new JTextField(""); 
	   JButton berechnenButton2 = new JButton("Berechnen"); 
	   JLabel ausgabeFeld2 = new JLabel("Ergebnis:"); 


	   public Calculator() 
	   { MenuBar hauptMenue = new MenuBar();
	    Menu menuedatei =new Menu ("Datei");
	    menuedatei.add ("Beenden");
	    Menu menuebearbeiten = new Menu("Bearbeiten");
		menuebearbeiten.add("Ergebnis Kopieren");
		menuebearbeiten.add("Einfügen");
	    Menu menuehilfe = new Menu("?");
	    menuehilfe.add("Hilfethemen");
	    menuehilfe.add("Info");
	    hauptMenue.add(menuedatei);
	    hauptMenue.add(menuebearbeiten);	    
	    hauptMenue.setHelpMenu(menuehilfe);
	    setMenuBar(hauptMenue);
	    menuedatei.addActionListener(this);
	    //addWindowListener(this);
	    
	    
	      setTitle("Calculator"); 
	      	       
	      //Aktionen festlegen 
	      berechnenButton.setActionCommand("BERECHNEN"); 
	      berechnenButton.addActionListener(this); 
	      berechnenButton2.setActionCommand("BERECHNEN"); 
	      berechnenButton2.addActionListener(this); 
	       
	      //schliessenButton.setActionCommand("SCHLIESSEN"); 
	      //schliessenButton.addActionListener(this); 
	       
	      //Komponten hinzufügen 
	      //panel.setLayout(new GridLayout(2,4)); 
	      //setBackground (Color.ORANGE);
	      JPanel panel = new JPanel();
	      panel.setLayout (new GridLayout (2, 4, 5, 10));
	      panel.setBorder (BorderFactory.createEmptyBorder (8, 8, 8, 8));
	      
	      //JPanel eingabeFeld = new JPanel();
	      eingabeFeld.setBorder (BorderFactory.createTitledBorder ("Zahl eingeben"));
	      eingabeFeld2.setBorder (BorderFactory.createTitledBorder ("Ascii eingeben"));
	  
	      panel.add(eingabeFeld);      
	      panel.add(berechnenButton); 
	      panel.add(ausgabeFeld); 
	      panel.add(eingabeFeld2);      
	      panel.add(berechnenButton2); 
	      panel.add(ausgabeFeld2); 
	      //panel.add(schliessenButton); 
	       

	      //Größe einstellen 
	     panel.setPreferredSize(new Dimension(450, 150));
	      
	      	      
	      getContentPane().add(panel);
	      //add(panel); 
	      pack(); 
	      setVisible(true); 
	      setDefaultCloseOperation(EXIT_ON_CLOSE); 
	       
	      //Mittig setzen 
	      setLocationRelativeTo(null); 
	   } 
	    
	   /** 
	    * @param args 
	    */ 
	   public static void main(String[] args) 
	   { 

	      new Calculator();
		   //Calculator MyCalc = new Calculator(); 
	   } 

	   private String umrechnen(String zahlText) 
	   { 
	      long zahl = 0; 
	       
	      //Keine Zahl eingegeben 
	      try 
	      { 
	         zahl = Long.parseLong(zahlText); 
	      } 
	      catch(NumberFormatException e) 
	      { 
	         return "Keine Zahl!"; 
	      } 
	       
	      //Zahl zu groß für die Anzahl der stellen 
	      if(zahl > Math.pow(52, stellen)) 
	      { 
	         return "Zahl zu groß!"; 
	      } 
	       
	             
	      char[] chars = new char[stellen]; 
	      int[] reste = new int[stellen]; 

	      // Ergebnis 
	      // Umwandlung Zahlensystem dezimal in 52-er System 
	      // und codierung in Buchstaben 
	      reste[0] = (int) (zahl % 52); 
	      zahl = zahl / 52; 

	      reste[1] = (int) (zahl % 52); 
	      zahl = zahl / 52; 

	      reste[2] = (int) (zahl % 52); 
	      zahl = zahl / 52; 

	      reste[3] = (int) (zahl % 52); 

	      for (int i = 0; i < reste.length; i++) 
	      { 
	         if (reste[i] < 26) 
	         { 
	            chars[chars.length - (i+1)] = (char) (reste[i] + 97); 
	         } 
	         else 
	         { 
	            chars[chars.length - (i+1)] = (char) (reste[i] + 65 - 26); 
	         } 
	      } 
	       
	      return new String(chars); 
	   } 

	   public void actionPerformed(ActionEvent e) 
	   { 
	      if(e.getActionCommand().equals("BERECHNEN")) 
	      { 
	         ausgabeFeld.setText("Ergebnis:   " + umrechnen(eingabeFeld.getText()) ); 
	      } 
	      else if(e.getActionCommand().equals("SCHLIESSEN")) 
	      { 
	         System.exit(0); 
	      } 
	   } 

}
```


----------



## SlaterB (25. Aug 2008)

```
public void actionPerformed(ActionEvent e)
    {
        if (e.getSource() == berechnenButton)
        {
            ausgabeFeld.setText("Ergebnis:   " + umrechnen(eingabeFeld.getText()));
        }
        if (e.getSource() == berechnenButton2)
        {
            ausgabeFeld2.setText("Ergebnis:   " + umrechnen2(eingabeFeld2.getText()));
        }
        else if (e.getActionCommand().equals("SCHLIESSEN"))
        {
            System.exit(0);
        }
    }
```
die Methode umrechnen2(String) musst du noch implementieren


----------



## hasan_0034 (25. Aug 2008)

SlaterB Danke für die Hilfe.


es funktioniert jetzt
also wenn ich auch zu untere eingabefeld zahl eingebe, es wird auch in ascii zahl umgewandelt. so weit gut 
Aber ich will ja im untere teil ascii in zahl umwandeln
und deswegen muss ich irgendwo und irgendwie die Kode reinfüge, die ich ganz am Anfang dieser Thread eingefügt habe


----------



## SlaterB (25. Aug 2008)

in die Methode umrechnen2(), oder was steht da bisher drin, dasselbe wie in umrechne()?
ist doch leicht einzufügen


----------



## hasan_0034 (26. Aug 2008)

Was ich will


Hier die Kode


```
{ int wert=0;

	      double sum=0;

	      // String definieren

	      String inputstr =new String("FgHi");

	      // String auf einzelne Zeichen zugreifen

	      for(int pos=0;pos<=3;pos++){

	      char buchstabe= inputstr.charAt(pos); // aus String einzelne Zeichen herauslösen

	      System.out.print(buchstabe+" ->"); // zum Test ausgeben

	      // Groß- oder Kleinbuchstabe

	      if(buchstabe>=97)wert=buchstabe-97; else wert=buchstabe-65+26;

	      double hochzahl=Math.abs(pos-3);

	      double erg=(wert*Math.pow(52, hochzahl));


	      sum=sum+erg;

	      System.out.print(erg+"Summe-->");

	      System.out.println(sum);

	      }}
```


Wenn diese Kode so einfüge, dann erschein die Ergebnis in Konsole aber ich will ja dass es in Tabelle erscheint.


Danke für eure Hilfe


----------



## SlaterB (26. Aug 2008)

deswegen lautet der Befehl ja 
> ausgabeFeld2.setText("Ergebnis:   " + umrechnen2(eingabeFeld2.getText())); 

das was in 
System.out.print(erg+"Summe-->");
         System.out.println(sum); 
steht, soll also der Rückgabewert der Methode sein, damit sie in ausgabeFeld2 angezeigt wird,
vergleiche den Aufbau von umrechne(), steht da System.out.println()?

von mir keine Antworten mehr,
erst Java lernen, dann Aufgaben lösen..


----------



## hasan_0034 (2. Sep 2008)

ich brauche dringend Hilfe.
Kann jemand mir helfen


----------

