ERLEDIGT
NEIN
NEIN
ANTWORTEN
9
9
ZUGRIFFE
1776
1776
EMPFEHLEN
-
10.03.08 11:08 #1
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.
-
10.03.08 11:30 #2
- 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
-
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ß
-
10.03.08 12:52 #4
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.
-
Hallo,
Du sagst, du schreibst ein C-Programm in Java. Wie sieht denn die Datei von dem C-Programm aus?
MFG
SaschaEs ist schwer Allwissend zu sein. Aber ich komme damit klar. ;-)
-
10.03.08 13:40 #6
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.
-
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
SaschaEs ist schwer Allwissend zu sein. Aber ich komme damit klar. ;-)
-
10.03.08 14:03 #8
Doch aber das Programm ist gut 20Jahre alt und deswegen gibt es das nicht mehr ganz. ; p
-
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.
-
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
-
Eingabe durch * ersetzen in Array
Von Manda im Forum C/C++Antworten: 4Letzter Beitrag: 16.12.08, 10:27 -
Eingabe: Java-Code, Ausgabe: Pseudotext (Anfänger)
Von Gespenstergesicht im Forum JavaAntworten: 4Letzter Beitrag: 30.05.05, 15:52 -
jar datei durch java auslesen
Von Serethos im Forum JavaAntworten: 2Letzter Beitrag: 26.02.05, 02:07 -
immer Problem mit Eingabe durch JTextField und JTree
Von zz0312 im Forum Swing, Java2D/3D, SWT, JFaceAntworten: 7Letzter Beitrag: 03.02.05, 10:55 -
update DB durch eingabe in textfeldern
Von cya im Forum PHPAntworten: 2Letzter Beitrag: 26.01.05, 10:50





Zitieren


Login





