///////////////////////////////
#include <acknex.h>
#include <stdio.h>
#include <default.c>
///////////////////////////////
#define MAX_LEN 1024
function main()
{
int numberOfStrings = 0;
char buffer[MAX_LEN]; // 1kB pro Zeile, kann auch mehr sein (MAX_LEN ändern)
FILE * f = fopen("meine_dialoge.txt", "r");
while(!feof(f))
{
// Anzahl der Strings bestimmen durch zeilenweises
// Einlesen
if(fgets(buffer, MAX_LEN, f) != NULL) {
numberOfStrings++;
} else {
if(ferror(f)) error("Error in file!");
}
}
// char* anstelle von STRING* macht nen ordentlichen Speedup aus
char ** array = malloc(sizeof(char*) * numberOfStrings);
if(!array) error("something went wrong!");
// Zurückspulen
int index = 0;
fseek(f, SEEK_SET, 0);
while(!feof(f))
{
if(fgets(buffer, MAX_LEN, f) != NULL) {
// Länge des Strings bestimmen
int len = strlen(buffer);
// Passenden Speicher allokieren
// +1 für nullterminator
array[index] = malloc(len + 1);
// und den string kopieren
strcpy(array[index], buffer);
// RTFM: fgets lässt das 'n' am Ende der Zeile im String,
// also: ABSCHNEIDEN!
(array[index])[len] = 0;
index++;
} else {
if(ferror(f)) error("Error in file!");
}
}
fclose(f);
var draw_y = 20;
while(1)
{
draw_text(array[357141],20,draw_y,vector(255,255,255));
wait(1);
}
}