[Kstars-devel] Opening files with KSFileReader

Alexander Potashev aspotashev at gmail.com
Thu Jun 4 20:14:36 UTC 2015


Hi,

open() doesn't understand the "~" shell shortcut to the home
directory. Please use the absolute path if you need it hardcoded.


--
Alexander Potashev

2015-06-01 11:20 GMT+03:00 M.S. Adityan <msadityan at gmail.com>:
> Hi Jasem and Akarsh,
>
> I am trying to test whether the code I wrote opens the constellationsart.txt
> file and reads contents from it. I am able to build kstars succesfully, but
> whenever I run kstars from the terminal, I get this qDebug() message saying
> that No constellationsart.txt file found for sky culture.  Here is the
> class:
>
> class ConstellationsArt
> {
> private:
>     QString abbrev, imageFileName;
>     int x1,y1,x2,y2,x3,y3,hd1,hd2,hd3;
>
>     /*Draw the constellation art
>     void draw( SkyPainter* skyp ) const; */
>
> public:
>
>     //Constructor
>     explicit ConstellationsArt(int serial);
>
>     //Destructor
>     virtual ~ConstellationsArt();
>
>     //@return the object's x1
>     inline int getx1() const { return x1; }
>
>     //@return the object's y1
>     inline int gety1() const { return y1; }
>
>     //@return the object's x2
>     inline int getx2() const { return x2; }
>
>     //@return the object's y2
>     inline int gety2() const { return y2; }
>
>     //@return the object's x3
>     inline int getx3() const { return x3; }
>
>     //@return the object's y3
>     inline int gety3() const { return y3; }
>
>     //@return the object's hd1
>     inline int gethd1() const { return hd1; }
>
>     //@return the object's hd2
>     inline int gethd2() const { return hd2; }
>
>     //@return the object's hd3
>     inline int gethd3() const { return hd3; }
>
> };
>
> Here is the .cpp file.
> ConstellationsArt::ConstellationsArt(int serial)
> {
>
>     // Find constellation art file and open it. If it doesn't exist, output
> an error message.
>     //QString artFileName = "constellationsart.txt";
>     KSFileReader fileReader;
>     if ( !
> fileReader.open("~/Projects/kstars/kstars/data/skycultures/western/constellationsart.txt"
> ) )
>     {
>         qDebug() << "No constellationsart.txt file found for sky culture";
>         return;
>     }
>
>     while ( fileReader.hasMoreLines() ) {
>         QString line;
>
>         line = fileReader.readLine();
>         if( line.isEmpty() )
>             continue;
>         QChar mode = line.at( 0 );
>         //ignore lines beginning with "#":
>         if( mode == '#' )
>             continue;
>
>         serial=line.mid(0,2).trimmed().toInt(); //reads the first column
> from constellationart.txt
>
>         // reads the serial number for each constellation, matches it, if
> matched then reads the details
>         if(mode==serial){
>             //Read pixel coordinates and HD number of star 1
>             x1 = line.mid( 3, 3 ).trimmed().toInt();
>             y1 = line.mid( 7, 3 ).trimmed().toInt();
>             hd1 = line.mid( 11, 6 ).trimmed().toInt();
>
>
>             //Read pixel coordinates and HD number of star 2
>             x2 = line.mid( 18, 3 ).trimmed().toInt();
>             y2 = line.mid( 22, 3 ).trimmed().toInt();
>             hd2 = line.mid( 26, 6 ).trimmed().toInt();
>
>
>             //Read pixel coordinates and HD number of star 3
>             x3 = line.mid( 33, 3 ).trimmed().toInt();
>             y3 = line.mid( 37, 3 ).trimmed().toInt();
>             hd3 = line.mid( 41, 6 ).trimmed().toInt();
>
>             abbrev = line.mid( 48, 3 );
>             imageFileName  = line.mid( 52 ).trimmed();
>         }
>     qDebug()<< "Serial number"<<serial<<"abbreviation"<<abbrev;
>     //testing to see if the file opens and outputs the data
>     }
> }
>
>
> I have tried giving it the absolute path of the file. I also tried putting
> constellationsart.txt into the build directory. What happens is KStars
> compiles, but the console tells me that the file constellationsart.txt didnt
> open.
>
> Secondly, I want to see the contents of Hendry-Draper.idx, just to be sure
> that all the HD numbers listed in constellationsart.txt are listed there
> too. How do I do that?
>
> M.S.Adityan
> Website: www.msadityan.com
> https://www.linkedin.com/in/msadityan
>
> _______________________________________________
> Kstars-devel mailing list
> Kstars-devel at kde.org
> https://mail.kde.org/mailman/listinfo/kstars-devel
>



-- 
Alexander Potashev


More information about the Kstars-devel mailing list