![]() |
|
|
google unix.com
|
|||||||
| Forums | Registrer | Forum Regler | Links | Albums | FAQ | Members List | Kalender | Søgning | Dagens Stillinger | Mark Forums Read |
| Højtstående Programmering Post spørgsmål om C, C + +, Java, SQL, og andre programmerings sprog her. |
Mere UNIX og Linux Forum Emner du måske kan finde Helpful
|
||||
| Tråd | Thread Starter | Forum | Svar | Last Post |
| hvordan kan søge efter en snor i en tekstfil og erstatte hele linjen i en anden fil | kkraja | UNIX for dummyer Spørgsmål & svar | 6 | 08-06-2008 08:23 AM |
| Søg en streng og tilføje tekst efter strengen | kesu2k | Shell Programmering og Scripting | 8 | 07-18-2008 08:35 PM |
| søgetekst string | itik | AIX | 2 | 01-28-2008 07:01 PM |
| Perl: Søg efter strengen på linje, så søg og erstat tekst | Crypto | Shell Programmering og Scripting | 4 | 01-04-2008 10:24 AM |
| tilføjer strengen til tekstfil baseret på søgestreng | malaymaru | Shell Programmering og Scripting | 1 | 06-09-2006 09:53 AM |
![]() |
|
|
LinkBack | Thread Tools | Søg denne tråd | Rate Thread | Display Modes |
|
|
|
||||
|
Søg en snor i en tekstfil i C
Hej,
Jeg har brug for hjælp med et program I'm kodning i C. Hvad mit program er at gøre, er at søge efter en snor i en tekstfil, hvis den finder en match, udskrive strengen til Stdout. Filen udseende: 000.001 Californien 100.000 Texas 011.110 Ohio 010.101 Washington Så hvis programmet finder en match, tryk "100000 Texas" til Stdout. Kan du hjælpe mig? Undskyld mit dårlige engelsk. |
|
||||
|
Code:
/* srch.c usage: srch filename "string to find"
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
int main(int argc, char **argv)
{
FILE *fp=fopen(argv[1],"r");
char tmp[256]={0x0};
while(fp!=NULL && fget(tmp, sizeof(tmp), fp)!=NULL)
{
if (strstr(tmp, argv[2])
printf("%s", tmp);
}
if(fp!=NULL) fclose(fp);
return 0;
}
|
|
||||
|
Thank You!, Tak mand, ... Tak ... Jeg korrigeret 'fgets' og' hvis' funktioner ... Code:
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
int main(int argc, char **argv)
{
FILE *fp=fopen(argv[1],"r");
char tmp[256]={0x0};
while(fp!=NULL && fgets(tmp, sizeof(tmp),fp)!=NULL)
{
if (strstr(tmp, argv[2]))
printf("%s", tmp);
}
if(fp!=NULL) fclose(fp);
return 0;
}
|
|
||||
|
Nr. søgningen er linje for linje, fgets får én linje ad gangen. tmp [256] kan læse i så mange som 255 tegn. Nr. linje i eksemplet teksten er længere end 40. Ingen problem.
Som en generel løsning, så brug tmp [LINE_MAX] hvor LINE_MAX er defineret i limits.h De fleste UNIX-værktøjer grænse linje størrelse at uanset LINE_MAX er for dit system. |
![]() |
| Bogmærker |
| Thread Tools | Søg denne tråd |
| Display Modes | Bedøm denne tråd |
|
|