Buscar
Social
Ofertas laborales ES

Foro sobre Java SE > ¿Se puede contar una palabra y convertirla a int?

Buenas compañeros, otra vez estoy por acá :P....
Debo decirles que ya casi termino mi programa. esta vez me trabe con esto.
Tengo un archivo .KSC, y en el lo siguiente:
#KORG Script Version 1.0
NEWMS000.KMP
GUITA001.KMP
TRUMP002.KMP

Para leer esto yo cree una Clase aparte que se encarga de chequear si el ID "#KORG Script Version 1.0" es verdadero accede al fichero y lee las lineas siguientes que son files .KMP que estos a su vez estan alojados dentro de un directorio con el nombre base del archivo.ksc que abri con el filechooser (Archivo.ksc tiene un directorio Archivo//:
NEWMS000//
GUITA001//
TRUMP002//
NEWMS000.KMP
GUITA001.KMP
TRUMP002.KMP))

lo que yo quiera hacer vendría a ser:
Contar todo lo que esta dentro de la carpeta "Archivo", convertirlo a int y dividirlo por 2.
Para que el resultado sea igual al numero de archivos listados en archivo.KSC.
y luego guardarlo en la memoria e imprimir en consola la lista junto a su directorio:
EJEMPLO en consola:
Sample list on .KSC file:
NEWMS000.KMP
GUITA001.KMP
TRUMP002.KMP

Aca les dejo el código:
---------------------------------------------------------------------------------------------------------

openFile.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent arg0)
{
JFileChooser fileChooser = new JFileChooser();
fileChooser.setAcceptAllFileFilterUsed(false);
//Filtros JFileChooser
FileNameExtensionFilter allF = new FileNameExtensionFilter("All Sample Files Korg...", "IMG","KSC","KMP");
FileNameExtensionFilter ksc = new FileNameExtensionFilter(".KSC Korg Sample Collection Files", "KSC");
FileNameExtensionFilter kmp = new FileNameExtensionFilter(".KMP Korg Sample Instruments Files", "KMP");
FileNameExtensionFilter metaKrome = new FileNameExtensionFilter("META.IMG Krome Samples", "IMG");
FileNameExtensionFilter metaKross = new FileNameExtensionFilter("META.IMG Kross Samples", "IMG");
fileChooser.addChoosableFileFilter(allF);
fileChooser.addChoosableFileFilter(metaKrome);
fileChooser.addChoosableFileFilter(metaKross);
fileChooser.addChoosableFileFilter(ksc);
fileChooser.addChoosableFileFilter(kmp);


int returnVal = fileChooser.showOpenDialog(null);
if (returnVal == 0)
{
//FILECHOOSER FILTRO META.IMG KROME:
KSTool.this.metaImgFilepath = fileChooser.getSelectedFile().getPath();
String MetaName = fileChooser.getSelectedFile().getName();
String opc1 = "META.IMG";
KSTool.this.myHeader.readMetaFileHeader(KSTool.this.metaImgFilepath);

//FILECHOOSER FILTRO KSC:
KSTool.this.sampleKscFilepath = fileChooser.getSelectedFile().getPath();
KSTool.this.myKSC.readKSC(KSTool.this.sampleKscFilepath);

//FILECHOOSER FILTRO KMP:
KSTool.this.sampleKmpFilepath = fileChooser.getSelectedFile().getPath();
KSTool.this.mykmpHeader.readKMPHeader(KSTool.this.sampleKmpFilepath, KSTool.this.currentMultisample);

//.KSC FILTER ACTION:
if (KSTool.this.myKSC.getIdKorg() != null)
{
KSTool.this.currentKMP = 0;
System.out.println("Open .KSC File - Access granted.");
System.out.println("Files on .KSC dir: ");
//KSTool.this.myKSC.readKSC(KSTool.this.sampleKscFilepath);
//System.out.println(KSTool.this.myKSC.getKMPName());
String kscsin = fileChooser.getSelectedFile().getPath();
String kscex = kscsin.substring(0,kscsin.lastIndexOf("."));
//System.out.println(kscex);
File dir1 = new File(kscex,"/");
String[] ficheros = dir1.list();
//Si no hay ficheros en el directorio va a imprimir en pantalla el siguiente mensaje
if (ficheros == null)
System.out.println("No hay ficheros en el directorio especificado");
//Si hay ficheros los va a enumerar y los va a mostrar en pantalla
else {
for (int x=0;x<ficheros.length;x++)
{
System.out.println(ficheros[x]);
}
System.out.println("*****************************************");
System.out.println("Sample list on .KSC file: ");
//Convierte la lista de .kmp en un array int para comparar su total y luego imprimirlo en consola
int kmfonks = Integer.parseInt(KSTool.this.myKSC.getKMPName());
for(currentKMP = 0; currentKMP != kmfonks; currentKMP++ ){
System.out.println(KSTool.this.myKSC.getKMPName());
}
}

}

agosto 15, 2014 | Registered Commenternewstyl3

Les cuento que ya pude hacer lo que quería y no hizo falta armarme tanto lío.
A la clase donde lee los ficheros .KSC le agregue unas lineas más y al code que puse antes también.
acá les dejo la solución:

Esto es de KSC.java:

public int readKSCInfo(String myKscFile, int number)
{
try
{
RandomAccessFile in = new RandomAccessFile(myKscFile, "r");
in.seek(12 + number * 14);

byte[] b1 = new byte[12];
in.read(b1);
setKMPName(new String(b1));

this.Space3 = in.readByte();
this.Space4 = in.readByte();

in.close();


}

catch (Exception ef)
{
ef.printStackTrace();
}
return 0;
}

Y esto que sigue sería la solución para mi problema que describí en el post:

//.KSC FILTER:
if (KSTool.this.myKSC.getIdKorg() != null)
{
KSTool.this.currentKSC = 0;
System.out.println("Open .KSC File - Access granted.");
System.out.println("Files on .KSC dir: ");
String kscsin = fileChooser.getSelectedFile().getPath();
String kscex = kscsin.substring(0,kscsin.lastIndexOf("."));
File dir1 = new File(kscex,"/");
String[] ficheros = dir1.list();
//Si no hay ficheros en el directorio va a imprimir en pantalla con el siguiente mensaje
if (ficheros == null)
System.out.println("No hay ficheros en el directorio especificado");
//Si hay ficheros los va a enumerar y los va a mostrar en pantalla
else {
int y = 0 + 1;
int x = 0;
for (x = 0;x<ficheros.length;x++)
{
//System.out.println(y++ + " - " + ficheros[x]);
System.out.println(y++ + " - " + ficheros[x]);

}
int total = x / 2 ;

System.out.println("*****************************************");
System.out.println("Sample list on .KSC file: ");
for(KSTool.this.currentKSC = 0;
KSTool.this.currentKSC != total;
KSTool.this.currentKSC++)
{
KSTool.this.myKSC.readKSCInfo(KSTool.this.sampleKscFilepath, currentKSC + 1);
System.out.println(KSTool.this.myKSC.getKMPName());
}
System.out.println("*****************************************");

}

}

agosto 16, 2014 | Registered Commenternewstyl3