From 2bd6d1d2ea8d36eedac96053a7e4a818da22f654 Mon Sep 17 00:00:00 2001 From: s_alexander Date: Thu, 3 Apr 2008 15:00:10 +0000 Subject: rewriting of the txt file parser removed unused variables from TLines and TLine, removed TMelody overworked the TLines and TLine records git-svn-id: svn://svn.code.sf.net/p/ultrastardx/svn/trunk@1000 b956fd51-792f-4845-bead-9b4dfca2ff2c --- Game/Code/Classes/USong_TextFile.pas | 86 ++++++++++++++++++++++++++++++++++++ 1 file changed, 86 insertions(+) create mode 100644 Game/Code/Classes/USong_TextFile.pas (limited to 'Game/Code/Classes/USong_TextFile.pas') diff --git a/Game/Code/Classes/USong_TextFile.pas b/Game/Code/Classes/USong_TextFile.pas new file mode 100644 index 00000000..a3e605de --- /dev/null +++ b/Game/Code/Classes/USong_TextFile.pas @@ -0,0 +1,86 @@ +unit USong_TextFile; + +interface + +{$IFDEF FPC} + {$MODE Delphi} +{$ENDIF} + +{$I switches.inc} + +uses + Classes, + SysUtils, + USong; + +type + {******************* + Child of the new TSong class. + implements filehandling to load a song from a text file + *******************} + TSong_TextFile = class(TSong) + protected + SongFile: TextFile; + + Function OpenSongFile: Boolean; + Function IsDataAvailable: Boolean; + Function GetNextLine(): String; + Procedure CloseSongFile; + end; + +implementation + +uses + ULog; + +//-------- +// Open the SongFile +//-------- +Function TSong_TextFile.OpenSongFile: Boolean; +begin + Result := False; + + if not FileExists(FilePath + FileName) then + Log.LogError('File does not exsist', FilePath + FileName) + else + begin + try + AssignFile(SongFile, FilePath + FileName); + Reset(SongFile); + Result := True; + except + Log.LogError('Faild to open file', FilePath + FileName) + end; + end; +end; + +//-------- +// More data in songfile available? +//-------- +Function TSong_TextFile.IsDataAvailable: Boolean; +begin + Result := not eof(SongFile); +end; + +//-------- +// Returns the next line from the SongFile +//-------- +Function TSong_TextFile.GetNextLine(): String; +begin + ReadLn(SongFile, Result); + Result := Trim(Result); +end; + +//-------- +// Close the SongFile +//-------- +Procedure TSong_TextFile.CloseSongFile; +begin + try + CloseFile(SongFile); + except + Log.LogError('Error closing file', FilePath + FileName); + end; +end; + +end. \ No newline at end of file -- cgit v1.2.3