Ich war mal so frei und habe deine Version etwas auf Performance und Speicher optimiert:

Code:
///////////////////////////////
#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);
	}
}



Hierbei sollte angemerkt sein: STRING ist verdammt langsam, also mehrere hunderte Male langsamer als "rohe" Stringfunktionen aus stdio.h


Visit my site: www.masterq32.de