Hi!


Leider habe ich nur ein "altes" project von mir entdeckt, welches unter umständen für dich hilfreich sein könnte.
Es besteht aus drei dateien: test8_2.c, test8_2.h und der .ini datei.
Die musst du erstellen und den code in die jeweilige datei kopieren. Dann sollte das starten funken.
Das Programm zählt gewisse strings (Namen) in der datei.
zudem kannst du dann eine "Schiffs-ID" angeben, um das Gewicht des jeweiligen Schiffes aus zu lesen.

Als Anfänger in lite-c könnte das script noch extrem unübersichtlich sein, zudem ich es das script noch nicht bereinigt und optimiert habe. Ist also vermutlich noch sehr viel nonsense drin. aber siehst dir mal an.....


test8_2.c
Code:
#include "test8_1.h"





void fDatei_txt_auslesen()
{	int Zahl[200];
	int i;	//Zähler für das auslesen der Datei
	int n;	//Zähler für das ausgeben der Datei
//	int PointShip;		//PointShip wird in der Ini-Datei deklariert -> Anzahl der beschriebenen Schifftypen
	
	
	fhandle = file_open_read("test.ini"); 
	
	ftimesname();
	str_for_num(test_str,Zaehler);

	
	
	file_close(fhandle); 
	
}



void ftimesname()					//   +++++++++++ Diese Function zählt per Counter ein gesuchtes Wort in einer text-datei++++++++++++++
{	
	int i;
	int PointShip;

//Hier könnte man eine weitere Bedingung einfügen,z.B. falls spiel neugestartet wird
	for (i=0; i<file_length(fhandle); i++)
	{
	
	result = file_find(fhandle,"[SCHIFF]");			//+++++"[SCHIFF]" könnte man durch einen STRING* variabel verändern+++++++
	if(result > 0) { Zaehler +=1;	}

	}


}


/////////////////////////////////////
// Function for INFORMATION-STRUCTS
/////////////////////////////////////

void readStructShip()
{  int i, ID_choice;
	//char stringmemory;
	
	
	
	fhandle = file_open_read("test.ini"); 
	
	
	for(i=1; i < (Zaehler+1); i++) {
		
		//Hier muss eine komplette Structabfrage erfolgen
		//....abfrage auf weitere functionen aufteilen!
		
		//*******************************************
		//Teil 1... Suche erste ID
		file_find(fhandle,"ID="); 
		PointShip = file_var_read(fhandle); 
		SShipType[i].acID = PointShip;
		//*******************************************
		//Teil 2... Suche darauf folgenden String - "Name="
		file_find(fhandle,"Name="); 
		file_str_read(fhandle,stringmemory_str);
		SShipType[i].acName = stringmemory_str;
		//SShipType[i].acName = "TESTSTRING";
		//str_cpy((SShipType[i].acName)[0], "TEST STRING");       
		
		//*******************************************
		//Teil 3... Suche darauf folgendes Gewicht "Gewicht="
		file_find(fhandle,"Gewicht="); 
		PointShip = file_var_read(fhandle); 
		SShipType[i].acMass = PointShip;
		//*******************************************
		//Teil 4... Suche darauf folgenden Informationstext "Info="
		file_find(fhandle,"Info="); 
		file_str_read(fhandle,stringmemory_str);
		//SShipType[i].acShipInfo = stringmemory_str;
		//str_cpy(SShipType[i].acShipInfo, "TEST STRING");
		//str_cpy((SShipType[i].acShipInfo)[i], stringmemory_str);
		//*******************************************

		
		
	}
	file_close(fhandle);

	str_cpy(operation_str, "Von welchem Schiff wollen Sie das Gewicht erfahren?");
	wait(-3);
	str_cpy(operation_str, "Geben Sie eine Schiffs_ID ein!");
	wait(-3);
	str_cpy(operation_str, "#3");			// anstelle von #3  könte ich auch nur 3 leerzeichen zwischen den " " einfügen.
	str_cpy(test_str, "#3");				// -> So ist es aber lesbarer.
	wait(-1);
	
	inkey(test_str);
	
	ID_choice = str_to_num(test_str);
	str_for_num(operation_str, SShipType[ID_choice].acMass);
	str_cpy(test_str,"#200");
	//str_cpy(test_str, SShipType[ID_choice].acName);
	test_str = SShipType[ID_choice].acName;
	//str_cpy(test_str, stringmemory_char);
}



/////////////////////////////////////
// Functions for STRING operation_str
/////////////////////////////////////

void fDelete_operation_str()
{
	str_cpy(operation_str, "#200");
   wait(-1);		
}






//////////////////////////////
// MAIN Function
//////////////////////////////

int main (void) {
      
   //int 	Seite;				//Für das Zugreifen auf die Array-Elemente
   //int	Seitenanzahl;		//Anzahl der Array-Elemente
      
	video_mode = 6; 
	vec_set(screen_color, vector(50, 25, 25)); // make the background color dark   
   
   
    		
   
   
   //	wait(-4);
  	fDelete_operation_str();
    

   fDatei_txt_auslesen();
  
  	wait(-2);
  
  	readStructShip();
   
   //wait(-6);
   //sys_exit(NULL);
}





test8_2.h
Code:
//////////////////////////////
// Funktionsprototypen
//////////////////////////////
	void	fDelete_operation_str();		//Funktion löscht den operation_str
	void	fSShipDefinition();				//Funktion ermöglicht Parametereingabe zu Structur
	void	fDatei_txt_auslesen();			//Funktion liest die test.ini Datei aus
	void 	ftimesname();						//zähle ein wort
	void 	readStructShip();
	
	
///////////////////////////////

var Zaehler=0;
var fhandle;			//Handle für das Auslesen einer Datei

int PointShip;




//////////////////////////////
// Structs
//////////////////////////////

//STRUCTUR FÜR DAS SCHIFF
typedef struct {
   
   char*	acID[20];
   char*	acName[200];
   
   STRING*	acShipInfo[200];
   
   int	acMass;
   int	acEnergie;
   
}SShip; 

SShip SShipType[100];




////////////////////////////////////////////////////////////


STRING* test_str = "         ";
TEXT* test_txt =        
{
	layer = 18;
	pos_x = 10;
	pos_y = 60;
	string (test_str);
	flags = VISIBLE;
} 


//////////////////////////////
// Text
//////////////////////////////

STRING* operation_str = "#200";
TEXT* operation_txt =        
{
	layer = 15;
	pos_x = 10;
	pos_y = 20;
	string (operation_str);
	flags = VISIBLE;
} 


STRING* stringmemory_str = "#30";




test.ini
Code:
////////////////////////////////////////////////////
HIER WERDEN DIE VERSCHIEDENEN SCHIFFSTYPEN DEFINIERT
////////////////////////////////////////////////////

ANZAHL DER SCHIFFSTYPEN=5,






////////////////////////////////////////////////////
HIER WERDEN DIE VERSCHIEDENEN SCHIFFSTYPEN DEFINIERT
////////////////////////////////////////////////////

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

[SCHIFF]1
ID=1,
Name=Goliath-Frachter,
Info=Ein alter Frachter aber mit starken Waffen ausgestattet\n\n1x HE-Pulslaser\n1x Radix-Raketen,
Gewicht=5000,


++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

[SCHIFF]2
ID=2,
Name=Morpheus,
Info=Dieses Schiff ist ein kleines Schlachtschiff der Klasse S3F1,
Gewicht=12000,


+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

[SCHIFF]3
ID=3,
Name=Karadinos,
Info=Ein Aufklärer der Klasse S2. Es hat Leichte Schilde und Waffen jedoch eine massive Hülle.,
Gewicht=2000,


++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

[SCHIFF]4
ID=4,
Name=Tondosis VI,
Info=Ein Schlachtschiff welches konstruiert wurde um sich gegen mehrere Schlachtschiffe gleichzeitig messen zu können,
Gewicht=200000,


++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

[SCHIFF]5
ID=5,
Name=Gindos II,
Info="Ein Schlachtschiff welches zu Schlachtschiffklasse GII gehört",
Gewicht=120000,


++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++




A8c, Blender, FlStudio, Unity3d