[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