On Fri, 7 Sep 2007 16:16:35 +0200
Magnus Myrefors <[EMAIL PROTECTED]> wrote:
By the way I have found out that I used 
a way of reading lines from the input-file which can cause
some problem. I read in a book that fgets(string, sizeof(string), input)
should read one line up to sizeof(string) -1 or to the first newline-
character. But when I tested I found out that that wasn't the case.
That can explain the false data.

Magnus

> I looked at the code and I as far as I also think 
> that something should be printed to stdout.
> The only thing I could see in the code was that malloc
> wasn't used to allocate char *buf in the args to function
> getline().
> 
> Magnus
>  
> 
> On Fri, 7 Sep 2007 10:08:19 +0200
> David Nečas (Yeti) <[EMAIL PROTECTED]> wrote:
> 
> > On Fri, Sep 07, 2007 at 01:45:09AM +0200, Magnus Myrefors wrote:
> > > 
> > > yeti>> I have tested your minimal testprogram with the whole
> > > test-file. Unfortunately the program doesn't print anything to
> > > stdout. It doesn't seem to be any data stored in the GSList
> > > or in the datastructure, Data *data.
> > 
> > If there is any line that starts with a digit (after
> > possible whitespace), it has to print either the data or an
> > error.  If it doesn't, then there is no line whose first
> > non-whitespace character would satisfy g_ascii_isdigit(c) or
> > it does not end up in the list. This means either
> > - g_ascii_isdigit(c) does not evaluate to TRUE for digits
> >   on your system
> > - g_slist_prepend() does not work
> > - g_slist_reverse() does not work
> > - the file looks different than you sent
> > 
> > Which one is it?
> > 
> > > (I tried to print a field
> > > every time a new line was about to be read in the while-loop).
> > > Furthermore, I wonder if the test,
> > >  if(end == start)
> > >    failfield = "Latitude";,
> > > can conclude that the string was converted correctly with
> > > g_ascii_strtod(). If g_ascii_strtod() converts only a fraction 
> > > of the string, it will result in (end != start) and failfield
> > > won't be set which results in no output to stderr.
> > 
> > end is the input to the next conversion, therefore failfield
> > will be set in the next conversion (or trailing garbage
> > message will be printed if it was the last).  Unless the
> > file contain one of the few possible cases of concatenated
> > floating point numbers that can be parsed back -- these can
> > be catched by checking whether *end is space or '\0'.
> > 
> > But this does not matter at all.  Either way you get *some*
> > output, either data or errors (or both in the case of
> > trailing garbage).  You must get some output even if
> > g_ascii_strtod() and strtol() return completely random
> > values.  So I just don't believe you.  Period.
> > 
> > Yeti
> > 
> > --
> > http://gwyddion.net/
> > _______________________________________________
> > gtk-app-devel-list mailing list
> > gtk-app-devel-list@gnome.org
> > http://mail.gnome.org/mailman/listinfo/gtk-app-devel-list
> _______________________________________________
> gtk-app-devel-list mailing list
> gtk-app-devel-list@gnome.org
> http://mail.gnome.org/mailman/listinfo/gtk-app-devel-list
_______________________________________________
gtk-app-devel-list mailing list
gtk-app-devel-list@gnome.org
http://mail.gnome.org/mailman/listinfo/gtk-app-devel-list

Reply via email to