tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
9
ZUGRIFFE
1776
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Avatar von Fraenzchen
    Fraenzchen Fraenzchen ist offline Rookie
    Registriert seit
    Mar 2008
    Ort
    Mannheim
    Beiträge
    7
    Hallo,

    ich soll über eine mir gegebene Textdatei mehrere Java-Arrays füllen. Insgesamt sind es vier vom Typ double und drei vom Typ long deren Größe ebenfalls durch die Datei bestimmt wird, durch die ersten drei übergebenen Variablen, danach werden erst die double und danach die long Arrays gefüllt. Wie die Datei von der ich die Werte bekomme aussehen soll, kann ich selbst bestimmen. Wie kann ich das in Java umsetzen, ich hab bisher nur gelernt, wie ich von der Konsole einlese.

    Da das meine erste Frage ist bitte noch etwas nachsichtig mit mir sein. Falls noch was unklar ist einfach Fragen, über Hilfe wär ich sehr dankbar.
     

  2. #2
    Kryptaesthesie Kryptaesthesie ist offline Mitglied Gold
    Registriert seit
    Feb 2005
    Ort
    127.0.0.1
    Beiträge
    189
    Hallo.
    Zeig uns doch mal, wie die Quell-Datei, sprich die Text-Datei aussieht.

    Lesen tust du dann mit einem Gebilde, etwa wie:
    Code :
    1
    2
    3
    4
    5
    
    [B]BufferedReader[/B] in = new BufferedReader(
              new [B]InputStreamReader[/B](
                new [B]FileInputStream[/B]( "MyFile.txt" ) ) );
            String s = in.[B]readLine[/B]();
            in.[B]close[/B]();

    Oder an welcher Stelle hapert's?

    MfG Gerrit
     

  3. #3
    mk666 mk666 ist offline Mitglied Bronze
    Registriert seit
    Aug 2007
    Beiträge
    48
    Hallo!

    Das ist auch nicht weiter schwer. Am einfachsten geht das ganze mit einem BufferedReader. Mit dem kannst du deine Textdatei zeilenweise einlesen und verarbeiten.

    Nachlesen kannst du das z.B. in der JavaInsel (http://www.galileocomputing.de/openb...1527570e4ff423). Ein Blick in die API oder eine Suche hier im Forum bringt dich bestimmt auch schnell weiter.

    Gruß
     

  4. #4
    Avatar von Fraenzchen
    Fraenzchen Fraenzchen ist offline Rookie
    Registriert seit
    Mar 2008
    Ort
    Mannheim
    Beiträge
    7
    Also wie gesagt die Datei besteht noch nicht. Die erstell ich dann wenn ich weiß wie es am einfachsten für Java wäre. Das ganze soll eigentlich nur ne Übung für mich sein damit ich Java lerne. Ich übersetz eigentlich nur ein C Programm in ein Java Programm ist alles n bisschen komplexer.
     

  5. #5
    Avatar von zerix
    zerix zerix ist offline Hausmeister
    tutorials.de Moderator
    Registriert seit
    May 2005
    Beiträge
    4.335
    Hallo,

    Du sagst, du schreibst ein C-Programm in Java. Wie sieht denn die Datei von dem C-Programm aus?

    MFG

    Sascha
     
    Es ist schwer Allwissend zu sein. Aber ich komme damit klar. ;-)

  6. #6
    Avatar von Fraenzchen
    Fraenzchen Fraenzchen ist offline Rookie
    Registriert seit
    Mar 2008
    Ort
    Mannheim
    Beiträge
    7
    Da ich noch nicht weiss wie man das so hübsch zwischenrein hängt muss ich es leider direkt drunter schreiben.
    ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
    long indat(nscf,nel,hqz,nqz,mqz,zt,up,zk,xko,yko,zko,o,bndn)

    long *nscf;
    long nel[],hqz[],nqz[],mqz[],bndn[ND][ND];
    double zt[],up[],zk[],xko[],yko[],zko[],o[];

    { /*** Einlesen der Datei die als erstes Argument in argv **/
    /*** uebergeben wird. **/
    long nza,natom,bndi,i,j,BNDM,result;

    *nscf=nmxscf;
    result = scanf("%d %d %d",&natom,&BNDM,nscf);
    nza= natom-1;

    printf("Vor bndi \n");
    printf(" %ld %ld \n",nza, result);
    getchar();




    for (i=0;i<=nza;i++) {
    scanf("%d %d %d %d %lf",&o[i],&zt[i],&up[i],&zk[i]); }


    for (i=0;i<=nza;i++){
    scanf("%lf %lf %lf",&xko[i],&yko[i],&zko[i]); }

    if (BNDM==1)
    for (i=0;i<=nza;i++)
    for (j=0;j<=NBOND-1;j++){
    scanf("%d",&bndi);
    if ((bndi >0) && ((bndi-1) != i))
    bndn[i][bndi-1]=1; }

    return(nza);
    } /** Ende des Lesens der Eingabedatei **/

    ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
    Das ist jetzt aber nur die Eingabe, das komplette Programm umfasst über 1500 Zeilen und den Rest hab ich schon übersetzt. Die Arrays die übergeben werden sind in der main deklariert aber als externe.
     

  7. #7
    Avatar von zerix
    zerix zerix ist offline Hausmeister
    tutorials.de Moderator
    Registriert seit
    May 2005
    Beiträge
    4.335
    Schaust du mal bei dir in der Toolbar. Da ist ein Button mit einer Raute drauf. Da kannst du dann den Code einfügen.

    Ich meinte nicht den Quelltext der C-Datei.

    Befüllt das C-Programm die Arrays nicht aus einer Datei?

    MFG

    Sascha
     
    Es ist schwer Allwissend zu sein. Aber ich komme damit klar. ;-)

  8. #8
    Avatar von Fraenzchen
    Fraenzchen Fraenzchen ist offline Rookie
    Registriert seit
    Mar 2008
    Ort
    Mannheim
    Beiträge
    7
    Doch aber das Programm ist gut 20Jahre alt und deswegen gibt es das nicht mehr ganz. ; p
     

  9. #9
    Avatar von zeja
    zeja zeja ist offline Mitglied Diamant
    tutorials.de Premium-User
    Registriert seit
    Sep 2006
    Beiträge
    2.962
    In Java kannst du das fast genauso machen. Statt scanf benutzt du dann

    Code :
    1
    
    scanf("%d %d %d %d %lf",&o[i],&zt[i],&up[i],&zk[i]);


    Code java:
    1
    2
    
    String line = //aktuelle Zeile aus deiner Datei z.B. mit BufferedReader.readLine()
    Object [] objects = new MessageFormat("%d %d %d %d %lf").parse(line);

    In objects steht dann das was geparst wurde, also das was in c als Referenz angegeben werden kann.
     

  10. #10
    Clash Clash ist offline Mitglied Gold
    Registriert seit
    Apr 2002
    Ort
    Stuttgart
    Beiträge
    101
    Hi,
    du kannst die Sache noch dahingehend vereinfachen, dass du den Scanner aus java.util benutzt:
    Code :
    1
    
    Scanner scan = new Scanner(myFile);

    mittels scan.next...() kannst du jeweils das nächste Double, Float, Byte etc. auslesen.

    grüße,
    Clash
     

Ähnliche Themen

  1. Eingabe durch * ersetzen in Array
    Von Manda im Forum C/C++
    Antworten: 4
    Letzter Beitrag: 16.12.08, 10:27
  2. Eingabe: Java-Code, Ausgabe: Pseudotext (Anfänger)
    Von Gespenstergesicht im Forum Java
    Antworten: 4
    Letzter Beitrag: 30.05.05, 15:52
  3. jar datei durch java auslesen
    Von Serethos im Forum Java
    Antworten: 2
    Letzter Beitrag: 26.02.05, 02:07
  4. immer Problem mit Eingabe durch JTextField und JTree
    Von zz0312 im Forum Swing, Java2D/3D, SWT, JFace
    Antworten: 7
    Letzter Beitrag: 03.02.05, 10:55
  5. Antworten: 2
    Letzter Beitrag: 26.01.05, 10:50