Help with C

DEATH

Κατάσταση:

Εγγραφή: Ιαν 2009

Καταχωρήσεις: 2219

1 ) θέλω να αντιγράψω τα περιεχόμενα ενός αρχείου sdp.txt σε ένα άλλο αρχείο με όνομα sdp_voip.txt
2 ) στο sdp_voip.txt θέλω να προσθέσω στην αρχή του μια γραμμή που θα περιέχει την IP_A
δειτε την συνάρτηση sdp_voip

Spoiler: Highlight to view

void sdp_voip (void)
{
char *pres;
char *search = " ";

char IP_A[16],IP_B[16],line[256];
int i;
FILE *fp1,*fp2,*fp;
fp1=fopen("sdp_1.txt","r");   
fp2=fopen("sdp_6.txt","r");
fp=fopen("voip.txt","w");
for (i=0;i<2;i++)
{
   if (i==0)
   fp=fp1; 
   else
   fp=fp2;
   while (fgets (line,256,fp))
   {
   fputs (line,fp);
   char type;
   char *pos;
   pos=strchr(line,'=');
   if (pos==NULL) continue;
   type=line[pos-line-1];
   switch (type)
   {
   case 'o':          
    pres=strtok(pos+1,search);
    pres=strtok(NULL,search); 
    pres=strtok(NULL,search); 
    pres=strtok(NULL,search);
    pres=strtok(NULL,search);
    pres=strtok(NULL,search);
    if (i==0)
    strcpy (IP_A,pres);
    else
    strcpy (IP_B,pres);  
    break;   
   }
  }
}  
}   


foutrelis
Global Moderator Editor

Κατάσταση:

Εγγραφή: Δεκ 2008

Καταχωρήσεις: 252

Την αντιγραφή μπορείς να την υλοποιήσεις με τις συναρτήσεις fopen (άνοιγμα των δύο αρχείων, το αρχικό με mode "r" και το τελικό με mode "w"), fgetc/fputc (αντιγραφή byte προς byte) ή fgets/fputs (αντιγραφή συνόλων από bytes) με χρήση ενός buffer μερικών KB (τέτοιου είδους αντιγραφή παρατηρώ στη συνάρτηση sdp_voip).

Για το (2), το IP_A βλέπω πως είναι ένας πίνακας με 16 στοιχεία τύπου char. Μια απλή λύση είναι αφού ανοίξεις το sdp_voip.txt για εγγραφή και πριν προχωρήσεις στην παραπάνω αντιγραφή, να γράψεις το IP_A στο νέο αυτό αρχείο, ακολουθούμενο από αλλαγή γραμμής ('\n').

Ελπίζω να βοήθησα.


DEATH

Κατάσταση:

Εγγραφή: Ιαν 2009

Καταχωρήσεις: 2219

για το πρώτο ερώτημα βρήκα λύση , τώρα μένει το 2 ερώτημα για να δούμε
ty foutrelis

Τελευταία τροποποίηση από DEATH — Σαβ, 02/01/2010 - 02:50.
____


Καλύτερα η ουτοπία παρα η μουγκoπία


back to top