/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package ricercabinariascuola;
import java.util.Vector;
import java.io.File;
import java.io.FileNotFoundException;
import java.util.Scanner;
/**
*
* @author Marco
*/
public class SpecialVector extends Vector {
public SpecialVector (String csvFileName) {
String tmp;
String[] lista;
Scanner lettore = null;
try {
lettore = new Scanner (new File(csvFileName));
}
catch(FileNotFoundException ex) {
System.out.println("Errore in apertura file: " + ex.toString());
}
while (lettore.hasNextLine()) {
tmp = lettore.nextLine();
lista = tmp.split(";");
this.add(lista[1]);
}
}
int puoEsistere = 0;
public int ricercaBin (String searchedString, int idxStart, int idxStop) {
int mid = (int) ((idxStop + idxStart) / 2);
while (puoEsistere < 2) {
if (mid == idxStop) {
puoEsistere ++;
}
String tmpS = (String) this.elementAt(mid);
int tmp = tmpS.compareToIgnoreCase(searchedString);
if (tmp == 0) {
return mid;
}
else if (tmp > 0) {
return this.ricercaBin(searchedString, idxStart, mid - 1);
}
else {
return this.ricercaBin(searchedString, mid + 1, idxStop);
}
}
return - 1;
}
public String decodifica (int posizione, String csvFileName) {
this.clear();
String tmp;
String[] lista;
Scanner lettore = null;
try {
lettore = new Scanner (new File(csvFileName));
}
catch(FileNotFoundException ex) {
System.out.println("Errore in apertura file: " + ex.toString());
}
while (lettore.hasNextLine()) {
tmp = lettore.nextLine();
lista = tmp.split(";");
this.add(lista[0]);
}
return (String) this.elementAt(posizione);
}
}