[Haskell-cafe] Newbie question about Read strings in a line of File

Huong Nguyen hiperfume at gmail.com
Tue Jul 26 10:52:43 EDT 2005


Hello everybody,

Now I am writing a module to handles messages of a system. The
messages are stored in a file. The content of each line of the file
likes this:

   1        001          001           Error message 1
   1        001          002           Error message 2
   1        002          001           Warning message 1

in which: The first word is the language Code (e.g: 1 is English, 2 is
French), the second is type of messages (e.g: 001 is error message,
002 is warning message,etc), the third is the index number of
messages, and the last is the message. I need to read 3 first words of
each line and assign them to 3 variables. After that, I need to show
the error message based on the tuple of those 3 first variable, e.g:
errMsg("1","001","001") = "Error message 1"

At first, I tried to read only one first line of the file as follows:

import Prelude
import List
import Char
import IO

main = do hdl <- openFile "message.txt" ReadMode
               msgLine <-hGetLine hdl
--stdMsg: cut space at the begining of the line.
               let stdMsg = dropWhile(not.isSpace) msgLine
-Assign langCode with the first word of the line.
               let langCode = takeWhile(not.isSpace) stdMsg

However, after that, I do not know how to read second element, third
element of the line. And how to read continuous next line after first?

Please help me. Thanks a lot.


More information about the Haskell-Cafe mailing list