Subversion Repositories spk

Rev

Rev 196 | Rev 203 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 196 Rev 197
Line 271... Line 271...
271
 
271
 
272
	m_lFiles.RemoveEmpty();
272
	m_lFiles.RemoveEmpty();
273
}
273
}
274
 
274
 
275
 
275
 
276
bool CMultiSpkFile::readFile(const Utils::String &filename, bool bReadData)
276
bool CMultiSpkFile::readFile(const Utils::WString &filename, bool bReadData)
277
{
277
{
278
	CFileIO File(filename);
278
	CFileIO File(filename);
279
	if ( !File.startRead() ) return false;
279
	if ( !File.startRead() ) return false;
280
 
280
 
281
	// first read the header
281
	// first read the header
282
	if ( !_parseHeader(File.readEndOfLine()) ) return false;
282
	if ( !_parseHeader(File.readEndOfLineStr()) ) return false;
283
 
283
 
284
	ClearFiles ();
284
	ClearFiles ();
285
 
285
 
286
	int doneLen = 0;
286
	int doneLen = 0;
287
	// next read the data values for the spk files
287
	// next read the data values for the spk files
Line 318... Line 318...
318
			SMultiSpkFile *ms = node->Data();
318
			SMultiSpkFile *ms = node->Data();
319
			ms->sData = (char *)File.read(ms->lSize);
319
			ms->sData = (char *)File.read(ms->lSize);
320
		}
320
		}
321
	}
321
	}
322
 
322
 
323
	_sFilename = filename;
323
	_sFilename = filename.toString();
324
 
324
 
325
	File.close();
325
	File.close();
326
	m_bChanged = false;
326
	m_bChanged = false;
327
 
327
 
328
	return true;
328
	return true;
Line 649... Line 649...
649
	// now open the file
649
	// now open the file
650
	CFileIO File(_sFilename);
650
	CFileIO File(_sFilename);
651
	if ( !File.startRead() ) return false;
651
	if ( !File.startRead() ) return false;
652
 
652
 
653
	// read the header
653
	// read the header
654
	File.readEndOfLine();
654
	File.readEndOfLineStr();
655
	// skip past values
655
	// skip past values
656
	File.seek(4 + m_SHeader.lComprLen);
656
	File.seek(4 + m_SHeader.lComprLen);
657
 
657
 
658
	bool ret = false;
658
	bool ret = false;
659
	for ( CListNode<SMultiSpkFile> *node = m_lFiles.Front(); node; node = node->next() ) {
659
	for ( CListNode<SMultiSpkFile> *node = m_lFiles.Front(); node; node = node->next() ) {
Line 687... Line 687...
687
	// now open the file
687
	// now open the file
688
	CFileIO File(_sFilename);
688
	CFileIO File(_sFilename);
689
	if ( !File.startRead() ) return false;
689
	if ( !File.startRead() ) return false;
690
 
690
 
691
	// read the header
691
	// read the header
692
	File.readEndOfLine();
692
	File.readEndOfLineStr();
693
	// skip past values
693
	// skip past values
694
	File.seek(4 + m_SHeader.lComprLen);
694
	File.seek(4 + m_SHeader.lComprLen);
695
 
695
 
696
	for ( CListNode<SMultiSpkFile> *node = m_lFiles.Front(); node; node = node->next() ) {
696
	for ( CListNode<SMultiSpkFile> *node = m_lFiles.Front(); node; node = node->next() ) {
697
		SMultiSpkFile *ms = node->Data();
697
		SMultiSpkFile *ms = node->Data();
Line 747... Line 747...
747
	SMultiSpkFile *s = this->findPackage(p);
747
	SMultiSpkFile *s = this->findPackage(p);
748
	if ( s )
748
	if ( s )
749
	{
749
	{
750
		if ( s->sData )
750
		if ( s->sData )
751
			delete s->sData;
751
			delete s->sData;
752
		s->sData = (char *)p->CreateData((size_t*)&s->lSize);
752
		s->sData = (char *)p->createData((size_t*)&s->lSize);
753
	}
753
	}
754
}
754
}
755
 
755
 
756
SMultiSpkFile *CMultiSpkFile::findPackage(CBaseFile *p)
756
SMultiSpkFile *CMultiSpkFile::findPackage(CBaseFile *p)
757
{
757
{