Avatar billede nini12 Nybegynder
05. maj 2003 - 21:47 Der er 11 kommentarer og
1 løsning

Søge i en tekstfil

Er der nogen der kode til hvordan man søger i en fil(tekstfil).
Avatar billede leoness Nybegynder
05. maj 2003 - 21:49 #1
Prøv [Ctrl]+ B
Skriv søgeordet og søg
Avatar billede leoness Nybegynder
05. maj 2003 - 21:50 #2
Hov.... jeg misforstod dit spørgsmål...... nevermind :)
Avatar billede arne_v Ekspert
05. maj 2003 - 21:50 #3
Der er vist kun "the hard way".

Du åbner filen, læser en linie af gangen og tester om det du søger efter er
i hver linie.
Avatar billede arne_v Ekspert
05. maj 2003 - 21:54 #4
Et eksempel:

#include <stdio.h>
#include <stdlib.h>

void search(char *fnm, char *srch)
{
  FILE *fp;
  char line[100];
  fp=fopen(fnm,"r");
  while(!feof(fp)) {
      fgets(line,sizeof(line),fp);
      if(strstr(line,srch)!=NULL) printf("%s",line);
  }   
  fclose(fp);
}

int main()
{
  search("tst.dat","b");
}
Avatar billede arne_v Ekspert
05. maj 2003 - 21:54 #5
C:\>type tst.dat
1
22
333
a
bb
ccc
a1
b2
c3
C:\>search
bb
b2
Avatar billede arne_v Ekspert
05. maj 2003 - 21:55 #6
Da du ikke skrev C eler C++ eller platform valgte jeg at lave det i standard C.
Avatar billede nini12 Nybegynder
05. maj 2003 - 22:09 #7
Ok måske lidt forkert formuleret, så langt er jeg kommet. Har fået indlæst den linie fra filen jeg skal bruge. Men jeg skal søge efter noget bestemt og det er der hvor jeg kommer i tvivl.
Eks:
i filen står følgende
farve= gul
og jeg skal have fat i gul.......
Hvordan stiller jeg det op?
Avatar billede arne_v Ekspert
05. maj 2003 - 22:14 #8
Måske noget som:

tst.dat
-------
123
farve=gul
abc
    farve=rød

search.c
--------
#include <stdio.h>
#include <stdlib.h>

void search(char *fnm, char *srch)
{
  FILE *fp;
  char line[100];
  char *p;
  fp=fopen(fnm,"r");
  while(!feof(fp)) {
      fgets(line,sizeof(line),fp);
      p = strstr(line,srch);
      if(p!=NULL) {
        p = p + strlen(srch);
        printf("%s",p);
      }
  }   
  fclose(fp);
}

int main()
{
  search("tst.dat","farve=");
}

output
------
gul
rød
Avatar billede arne_v Ekspert
05. maj 2003 - 22:14 #9
Den finder ordet og tager så resten af linien.
Avatar billede nini12 Nybegynder
05. maj 2003 - 22:57 #10
mange tak for hjælpen, men har du har du lyst til at svare på det sidste spørgsmål????????
eks.
farve=gul&farvegruppe=lys&en hel masse teks
Tag dette eks.
Kan jeg så både få fat i farve=gul og farvegruppe=lys . Resten af linien/teksten skal jeg ikke bruge til noget.??????
Hvordan opdeles det eller kan det ikke lade sig gøre???
Avatar billede nini12 Nybegynder
05. maj 2003 - 23:13 #11
Tak for hjælpen endnu en gang, det sidste fandt jeg selv ud af
Avatar billede arne_v Ekspert
06. maj 2003 - 05:43 #12
Ellers kunne du have smug-kigget i:
  http://www.eksperten.dk/spm/348437
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