У меня есть файл, который содержит это:
(Float,Float,Float)"sometext"
(Float,Float,Float)"sometext"
(Float,Float,Float)"sometext"
...
...
и я хотел бы, чтобы моя программа считала строку из файла, поместила (Float, Float, Float) в тройку и «sometext» в строку, и все это в новом типе данных, чтобы все было выглядеть так:
SomeDataType (Float, Float, Float) "sometext"
Я получил это до сих пор:
readFromDisc filePath = do
fileHandle <- openFile "/tmp/lala.txt" ReadMode
contents <- hGetContents fileHandle
putStrLn $ readOneLine contents
Если файл содержит это:
(5.0,6.0,7.0)"faraway"
(8.0,9.0,0.0)"holdon"
Я получаю:
"(5.0,6.0,7.0)\"faraway\""
Теперь, так как я получил это как строку, я думал об использовании
breakInput input = break (=='"') input
Чтобы получить это:
("(5.0,6.0,7.0)","\"faraway\"")
Это пара строк, и я собирался использовать что-то, чтобы разобрать тройку и текст из нее, но все это не кажется правильным.
Есть ли лучший способ сделать это?