Skip to content

Instantly share code, notes, and snippets.

@Normmatt
Created January 31, 2013 01:46
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save Normmatt/4679210 to your computer and use it in GitHub Desktop.
Save Normmatt/4679210 to your computer and use it in GitHub Desktop.
#include "parser.h"
#include <string>
#include <fstream>
#include <stdio.h>
int* index;
int indexSize;
FILE * dataFile;
void initPointerFile(){
FILE * indexFile = fopen("xc3_.tsc.pointer", "rb");
fseek (indexFile, 0, SEEK_END);
int indexFileSize = ftell (indexFile);
printf("\nindexFileSize = %08X\n", indexFileSize);
fseek (indexFile, 0, SEEK_SET);
indexSize = indexFileSize/4;
index = new int[indexSize];//index size / 4 bytes = amount of pointers.
int result = fread(index,4,indexSize,indexFile);
if(result != indexSize){
printf("\x1b[10;0HERROR WHILE READING INDEX!\n%d\n%d",result,indexSize);
}
fclose (indexFile);
dataFile = fopen("xc3_.tsc", "rb");
// for(int i =0; i<10; i++)
// {
// printf("\nindex[%d] = %08X\n", i, index[i]);
// }
}
std::string getNextLine(int number) {
char* line = NULL;
int size;
if(number <= indexSize){
printf("\nindex = %08X\n", index[number]);
fseek (dataFile, index[number], SEEK_SET);
size = index[number+1]-index[number];
printf("size = %d\n", size);
line = new char[size+1];
fread(line,1,size,dataFile);
line[size] = '\0';
}
std::string str(line);
delete[] line;
return str;
}
/*std::string getNextLine(int number) {
std::string returnString = "";
char* line = NULL;
int size;
if(number <= indexSize){
FILE * dataFile = fopen("xc3_.tsc", "rb");
fseek (dataFile, index[number], SEEK_SET);
size = index[number+1]-index[number];
line = new char[size+1];
fread(line,1,size,dataFile);
line[size] = '\0';
fclose (dataFile);
}
returnString = line;
delete[] line;
return returnString;
}*/
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment