package data.control;

import java.io.BufferedReader;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.util.ArrayList;

public class FileInput {
	
	private BufferedReader reader = null;
	private String fileName;
	
	public FileInput(String fileName) {
		setFileName(fileName);
	}
	
	//kann sein das eine Zeile ausgelassen wird, da end vll falsch bergeben wird => berprfen
	//wenn end = 0 => komplettes File wird geladen
	
	//Daniel: Arbeite mit long! || in der for-Schleife i gleich auf start initialisieren? || Ich habe mal die ArrayList durch ein Array ersetzt, wir geben ja eines zurck und die Lnge
	//wissen wir auch!
	public String[] loadPartFile(int start, int end){
		String[] rc = new String[Math.abs(end-start)];		//Math.abs wenn end = 0 und start = 5000
		String line = new String("");
		
		if(end == 0){
			//funzt nicht wenn wir File ber 2,1 milliarden zeilen haben
			end = Integer.MAX_VALUE;
		}
		
		try {
			
			//Florian: muss nur 1 Objekt erzeugt werden
			if(reader == null){
				reader = new BufferedReader(new FileReader(fileName));
			}
			
			line = reader.readLine();
						
			for(int i = 0; i<=end && line != null; i++){
				if(i>=start){
					rc.add(line); // wenn du meines machst muss hier sowas hin wie: rc[i-start] = line;
				}
				
				line = reader.readLine();
			}
			reader.close();
		} catch (FileNotFoundException e) {
			System.out.println("File konnte nicht geffnet werden!");
			e.printStackTrace();
		} catch (IOException e) {
			System.out.println("Read Line hats verkackt !");
			e.printStackTrace();
		}
		
		return rc;
	}
	
	//start = 0, end = 0 => komplettes File wird geladen
	public String[] loadCompleteFile(){
		return loadPartFile(0, 0);
	}

	public String getFileName() {
		return fileName;
	}

	public void setFileName(String fileName) {
		this.fileName = fileName;
	}

}

@@ -1194,19 +1194,20 @@
 %0A%09%09%09for(
-int
+long
  i = 0; 
@@ -1261,16 +1261,18 @@
 %7B%0D%0A%09%09%09%09%09
+//
 rc.add(l
@@ -1276,17 +1276,21 @@
 d(line);
- 
+%09%09%09%09%09
 // wenn 
@@ -1352,16 +1352,79 @@
  line;%0D%0A
+%09%09%09%09%09rc%5B(int) (i-start)%5D = line;%09%09//vll doch kein long bei i %0D%0A
 %09%09%09%09%7D%0D%0A%09

i = long