Avatar billede dpeder10 Nybegynder
14. november 2012 - 20:26 Der er 15 kommentarer og
1 løsning

analyser data fra en txt fil.

hey
er ved at lave et program hvor jeg læser en tekst fil, det kan jeg også godt men skal bruge de data som bliver læst videre i nogle simple udregninger og det er der det går galt.
eks.
tekstfil
1 2
9 6 ( det er egentlig koordinater)
 
programmet skal læse tekst filen, der efter udregne nogle længder og til sidst printe en ny tekst fil.

er der nogen der har en primable til det?
Avatar billede arne_v Ekspert
14. november 2012 - 20:33 #1
Kan du forklare lidt hvor du er koert fast?

Du har laest data og nu skal du bruge data.

Og hvad er det du ikke kan?
Avatar billede dpeder10 Nybegynder
14. november 2012 - 21:14 #2
indlæser mine data på denne måde:
try{
            FileReader fil = new FileReader("c:\\Users\\dennis\\workspace\\måleafstand\\koordinater.txt");
            BufferedReader ind = new BufferedReader(fil);
                               
            String linje1 = ind.readLine();
            String linje2 = ind.readLine();
            String linje3 = ind.readLine();
            String linje4 = ind.readLine();
           
           
            {   
                   
            System.out.println(linje1);
            System.out.println(linje2);
            System.out.println(linje3);
            System.out.println(linje4); 
            }
        }catch(IOException e){
            System.out.println(e);

også kan jeg ikke få lov at bruge værdierne til noget
Avatar billede dpeder10 Nybegynder
14. november 2012 - 21:15 #3
og skal bruge dem til dette:
double hypotenuse;
        double a = Double.parseDouble("string linje1");//punktet x i den perfekte kup
        double b = Double.parseDouble("string linje2");// punktet y i den perfekte kup
          hypotenuse = Math.sqrt(a*a + b*b);           
          System.out.println("afstand fra origo til punkt 1 "+hypotenuse); 
       
            // den variable
           
            double hypotenuse1;
            double c = Double.parseDouble("string linje3");//punktet x i den variable kup
            double d = Double.parseDouble("string linje4");//punktet y i den variable kup
            hypotenuse1 = Math.sqrt(c*c + d*d);           
            System.out.println("afstand fra origo til punkt 2 "+hypotenuse1);
Avatar billede arne_v Ekspert
14. november 2012 - 21:18 #4
String linje1 = ind.readLine();
...
double a = Double.parseDouble(linje1);

burde virke.
Avatar billede dpeder10 Nybegynder
14. november 2012 - 21:32 #5
den skriver bare : linje1 cannot be resolved to a variable
Avatar billede arne_v Ekspert
14. november 2012 - 21:37 #6
Hvis de to linier er i samme scope saa skal det virke
Avatar billede dpeder10 Nybegynder
14. november 2012 - 21:43 #7
hvad er et scope, den vil ikke accepter variablerne a b c d
Avatar billede arne_v Ekspert
14. november 2012 - 21:49 #8
groft sagt { }
Avatar billede dpeder10 Nybegynder
14. november 2012 - 21:52 #9
ja tænkte det nok kan bare ikke få det til at køre
Avatar billede arne_v Ekspert
14. november 2012 - 22:03 #10
prove og post hele den relevante kode
Avatar billede dpeder10 Nybegynder
14. november 2012 - 22:19 #11
import java.io.*;
import java.util.ArrayList;
import java.io.FileInputStream;

public class måleafstand2 {

    /**
    * @param args
    */
    public static void main(String[] args) {
        // TODO Auto-generated method stub
       
        //hent data fra et andet sted
                               
        try{
            FileReader fil = new FileReader("c:\\Users\\dennis\\workspace\\måleafstand\\koordinater.txt");
            BufferedReader ind = new BufferedReader(fil);
                               
            String linje1 = ind.readLine();
            String linje2 = ind.readLine();
            String linje3 = ind.readLine();
            String linje4 = ind.readLine();
           
           
            {   
                   
            System.out.println(linje1);
            System.out.println(linje2);
            System.out.println(linje3);
            System.out.println(linje4); 
            }
        }catch(IOException e){
            System.out.println(e);
       
        //udregn data fra den hented fil
        double hypotenuse;
        double a = Double.parseDouble("string linje1");//punktet x i den perfekte kup
        double b = Double.parseDouble("string linje2");// punktet y i den perfekte kup
          hypotenuse = Math.sqrt(a*a + b*b);           
          System.out.println("afstand fra origo til punkt 1 "+hypotenuse); 
       
            // den variable
           
            double hypotenuse1;
            double c = Double.parseDouble("string linje3");//punktet x i den variable kup
            double d = Double.parseDouble("string linje4");//punktet y i den variable kup
            hypotenuse1 = Math.sqrt(c*c + d*d);           
            System.out.println("afstand fra origo til punkt 2 "+hypotenuse1);
           
            //afstand p1 til p2
         
            double p1,p2;
            p1= hypotenuse;
            p2= hypotenuse1;

            if (p2 < p1)
              System.out.println(" p2 skal flyttes " + (-p2+p1));
            else
              System.out.println("p2 skal flyttes " + (-p2+p1));
           
            //skriv afstand til en text fil
           
            String fileName = "data.txt";
           
            try {
               
                PrintWriter out = new PrintWriter(fileName);
               
            //Write text to file
                out.println(-p2+p1);
                out.println("This is line 2");
                out.print("This is line3 part 1, ");
                out.println("this is line 3 part 2");
                out.close();
            } catch (IOException e1){
                e1.printStackTrace();
            }   
            }
}
}
Avatar billede arne_v Ekspert
14. november 2012 - 22:24 #12
try{ // start scope
            FileReader fil = new FileReader("c:\\Users\\dennis\\workspace\\måleafstand\\koordinater.txt");
            BufferedReader ind = new BufferedReader(fil);
                             
            String linje1 = ind.readLine();
            String linje2 = ind.readLine();
            String linje3 = ind.readLine();
            String linje4 = ind.readLine();
         
         
            { 
                 
            System.out.println(linje1);
            System.out.println(linje2);
            System.out.println(linje3);
            System.out.println(linje4);
            }
        } // slut scope - linie1/2/3/4 kan ikke bruges laengere
catch(IOException e){
            System.out.println(e);
Avatar billede dpeder10 Nybegynder
14. november 2012 - 22:25 #13
så hvis jeg rykker den } eller sletter den vil det virke?
Avatar billede arne_v Ekspert
14. november 2012 - 22:31 #14
Proev og flyt de linier der parser op i den { }
Avatar billede dpeder10 Nybegynder
15. november 2012 - 12:14 #15
tak for svaret smid et svar:)
Avatar billede arne_v Ekspert
15. november 2012 - 13:52 #16
svar
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester