Avatar billede matric Nybegynder
10. november 2002 - 12:19 Der er 2 løsninger

Find værdier i en fil

Jeg har nogle filer hvor indholdet kunne se således ud:

By    Hillerød
Postnr    3400
Ejendomsnr    00340-0
Kommunenr    419

..hvor "By" og "Hillerød" er separeret med en tabulator.

I filen er der dog omkring 100-300 andre værdier/linier som jeg ikke skal bruge til noget.

Det jeg ønsker er at trække en række værdier ud (ca. 15) som er placeret i en ikke nødvendigvis ens rækkefølge eller placering i filen.

Det mest ligetil ville være at lave et loop og så løbe alle linier igennem, men findes der ikke en funktion som kan søge efter de rigtige linier?

Programmet skal bruges på omkring 3000 filer så jeg leder efter en løsning som udføres forholdsvist hurtigt.
Avatar billede dsj Nybegynder
10. november 2002 - 13:56 #1
Jeg mener ikke der findes noget automatisk til at gennemsøge filer. Du bliver nok nødt til at gennemsøge filen linie for linie og spørge til om der findes et bestemt ord i linie al a (seudokode):

linie = første linie;
while(linie != null) {
  if (linie indeholder "ord")
  else if (linie indeholder "ord2
  // osv.
  linie = næste linie;
}

Du kan muligvis også anvende en switch. Ved godt det er lidt træls at lave, men det er ikke så svært... :)
Avatar billede carstenknudsen Nybegynder
10. november 2002 - 16:06 #2
Der er ingen vej udenom at læse hele filen igennem,
fra ende til anden. Det du skal gøre er at huske
at benytte en f.eks. BufferedReader for at gøre
læsningen mere effektiv, ikke mindst når du skal
læse så mange filer som du skal.
Reader reader = new BufferedReader(new FileReader("filnavn"));
String line = null;
while ((line=reader.readLine())!=null) {
if (etellerandetertilstede) {
//...
}
}
Hvis du skal læse den samme fil flere gange,
så skal du overveje at
bruge den nye io pakke, java.nio, hvor du kan
lave en såkaldt memory-mapped fil, hvor hele
filen kommer ind i hukommelsen, så kan du let
læse forlæns, baglæns og sidelæns meget effektivt.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester