1 registered members (TipmyPip),
18,513
guests, and 5
spiders. |
Key:
Admin,
Global Mod,
Mod
|
|
|
Re: C-Lite--- Anfänger braucht Hilfe
[Re: silver_moon]
#293779
10/13/09 19:23
10/13/09 19:23
|
Joined: Jul 2007
Posts: 424 EUROPE
maslone1
Senior Member
|
Senior Member
Joined: Jul 2007
Posts: 424
EUROPE
|
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
#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
//////////////////////////////
// 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
////////////////////////////////////////////////////
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
|
|
|
|