• 0

[C] File operations, word search etc


Question

I am working in C on a text file that contains METAR data.

I would like to count how many entries file contains and still I don't know where to start and how to go through.

Counting lines is out of option, as METAR files may contain some additional 'commented' header data, so my first thought was to count all "METAR"s as in every entry there is just one. And still there is a problem of this commented header - who knows if someone didn't put some "METAR" in there?

Still, I do not know how, C is a new area for me.

There is a link to METAR on wikipedia: METAR

and some of my sample file:

##########################################################
# Query made at 11/09/2009 14:49:47 UTC
# Time interval: from 11/01/2009 14:00  to 11/09/2009 14:00  UTC
##########################################################

#
#*Some commented stuff*
#

###################################
#  METAR/SPECI from EPGD
###################################
200911091400 METAR EPGD 091400Z 09009KT 0800 R29/1600 -RA FG VV003 05/05
						Q1011=
200911091330 METAR EPGD 091330Z 10012KT 1000 R29/1800 -RA BR VV002 05/05
						Q1011=
200911091300 METAR EPGD 091300Z 10012KT 1600 -RA BR OVC001 05/04 Q1011=
200911091230 METAR EPGD 091230Z 09011KT 1600 -RA BR BKN001 05/04 Q1011=
200911091200 METAR EPGD 091200Z 09012KT 1500 -RA BR BKN001 05/04 Q1011=
200911091130 METAR EPGD 091130Z 09012KT 2000 -RA BR BKN001 05/04 Q1012=
200911091100 METAR EPGD 091100Z 09013KT 2000 -DZ BR BKN001 05/04 Q1012=
200911091030 METAR EPGD 091030Z 09013KT 1200 -RADZ BR SCT001 BKN002 05/04
						Q1012=

And as you can see there might be some problems

Maybe counting "=" is a bright idea?

Do you have any ideas?

Any help is appreciated.

Link to comment
https://www.neowin.net/forum/topic/860548-c-file-operations-word-search-etc/
Share on other sites

10 answers to this question

Recommended Posts

  • 0

Well, first of all you'd need to use the stdio.h header and youd use the fscanf fucntion, here's a good reference to it: http://www.cplusplus.com/reference/clibrary/cstdio/fscanf/

This is assuming you already have your file Handler created.

  • 0

Changed my mind.

The code that have isn't good for file reading.

But I have gone through string search so part of work is done ;)

I hope this is my last question in this case :what is the best way to insert data to array line-by-line?

  • 0
Changed my mind.

The code that have isn't good for file reading.

But I have gone through string search so part of work is done ;)

I hope this is my last question in this case :what is the best way to insert data to array line-by-line?

Linked list or hashtable with fgets.

  • 0
Just figured it out by myself.

I knew fgets, but I didnt know how to get the next line - I feel like an idiot know, it was that simple, it goes forward by itself with next call... :)

It'll only go to the next line if you read enough characters to get to the '\n' at the end of the line, which you're right, it does in normal operation. All depends on how many characters you want to read.

  • 0

Now I would like to read a wind strength from each record.

200911091200 METAR EPGD 091200Z 09012KT 1500 -RA BR BKN001 05/04 Q1011=

This is in bold. First 3 digits are the wind direction, next 2 is the strenght, KT is shortcut for knots.

I guess that it is possible to search each record for "KT" (function returning position in strong - there is sth like that?) and read 2 places before.

This is my theory, I am now looking for proper functions. Is this good? Please, advice :)

Edited by Karwowski
  • 0

Maybe not the best way - i treat string as an array and I check each index if it equals K, if the next equals T, two previous indexes must point the strenght of wind. :)

Maybe not the best, but it works :)

Thanks for all replies :)

This topic is now closed to further replies.
  • Recently Browsing   0 members

    • No registered users viewing this page.
  • Posts

    • Samsung Galaxy XR arrives in the UK with new AI and enterprise features by Fiza Ali Samsung is bringing its Galaxy XR headset to the UK several months after the device made its debut as the first headset built on Google's Android XR platform. The headset was first teased in late 2024 alongside Google's introduction of Android XR before making its commercial debut in 2025. Developed in collaboration with Google and Qualcomm, Galaxy XR combines mixed reality experiences with Gemini-powered AI features, allowing users to interact with digital content using voice, gestures, and visual inputs. While the hardware itself remains largely unchanged from the version Samsung unveiled last year, the company is using the UK launch to spotlight several software enhancements that have arrived through recent updates. Among the most notable additions is deeper integration with Google's ecosystem. Galaxy XR users can explore destinations through Google Maps' Immersive View, receiving AI-powered recommendations and contextual information from Gemini while navigating virtual environments. Furthermore, entertainment experiences have also expanded; users can watch 180-degree and 360-degree videos on YouTube, browse spatial content converted into 3D, and ask Gemini questions about on-screen content without interrupting playback. Samsung is also highlighting mixed-reality features such as Circle to Search, which allows users to identify real-world objects through hand gestures while using the headset's video pass-through mode. Another feature automatically converts photos and videos into spatial 3D experiences. Moreover, the headset now also supports Android Enterprise, allowing organisations to manage deployments using existing Android management tools. Annika Bizon, Vice President, Product and Marketing, Mobile Experience, Samsung UK & Ireland, talked about the device, stating: The headset is powered by Qualcomm's Snapdragon XR2+ Gen 2 platform and features dual 4K Micro-OLED displays. The tech giant says that users can expect up to 2.5 hours of battery life. Samsung also confirmed that Galaxy XR will continue receiving software and security updates as the company works alongside Google and Qualcomm to expand the Android XR ecosystem. Galaxy XR is now available for pre-order and will go on sale on 8 July. Customers interested in trying the headset before launch can visit Samsung KX in London and selected Samsung Experience Stores from 17 June. Finally, the company will also host a livestream on 19 June showcasing the headset's capabilities and answering questions from prospective customers.
    • Cowork is so broken. it will keep just not responding while trying to do a task. Then you have to work to get it to REstart the task.
  • Recent Achievements

    • First Post
      Jocimo earned a badge
      First Post
    • Week One Done
      suprememobiles48 earned a badge
      Week One Done
    • One Month Later
      Windows Guy earned a badge
      One Month Later
    • One Month Later
      Prasann earned a badge
      One Month Later
    • Week One Done
      Prasann earned a badge
      Week One Done
  • Popular Contributors

    1. 1
      +primortal
      521
    2. 2
      +Edouard
      174
    3. 3
      PsYcHoKiLLa
      95
    4. 4
      Steven P.
      84
    5. 5
      ATLien_0
      70
  • Tell a friend

    Love Neowin? Tell a friend!