RosettaCodeData/Task/Read-a-specific-line-from-a-file/PureBasic/read-a-specific-line-from-a-file.purebasic
Ingy döt Net b83f433714 tasks a-s
2013-04-10 23:57:08 -07:00

32 lines
889 B
Text

Structure lineLastRead
lineRead.i
line.s
EndStructure
Procedure readNthLine(file, n, *results.lineLastRead)
*results\lineRead = 0
While *results\lineRead < n And Not Eof(file)
*results\line = ReadString(file)
*results\lineRead + 1
Wend
If *results\lineRead = n
ProcedureReturn 1
EndIf
EndProcedure
Define filename.s = OpenFileRequester("Choose file to read a line from", "*.*", "All files (*.*)|*.*", 0)
If filename
Define file = ReadFile(#PB_Any, filename)
If file
Define fileReadResults.lineLastRead, lineToRead = 7
If readNthLine(file, lineToRead, fileReadResults)
MessageRequester("Results", fileReadResults\line)
Else
MessageRequester("Error", "There are less than " + Str(lineToRead) + " lines in file.")
EndIf
CloseFile(file)
Else
MessageRequester("Error", "Couldn't open file " + filename + ".")
EndIf
EndIf