Ver Mensaje Individual
  #4 (permalink)  
Antiguo 02/10/2010, 13:11
joiner3700
 
Fecha de Ingreso: septiembre-2010
Mensajes: 16
Antigüedad: 13 años, 8 meses
Puntos: 0
Respuesta: Urgente por favor ayudenme!!

Cita:
Iniciado por sam90 Ver Mensaje
Hay cosas que estas haciendo mal. Fijate, en la variable texto guardas la linea a incluir. Pero cuando entras en el while lees desde el archivo y lo almacenas en esta misma variable.

No he logrado entender la logica de tu programa.

Te comento un poco mas o menos como seria:

Leer una linea hasta que se acabe el archivo
si numero de linea es distinto al numero deciado, pego la linea leida en un nuevo archivo. si son iguales no hago nada.
me he intentado eso y nada fijate en mi codigo

Código C:
Ver original
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <string.h>
  4. void validar(FILE*archivo2)
  5.       {
  6.     char caracter[80];
  7.     int a=0;
  8.     archivo2= fopen("actualizar.txt","r+");
  9.     if(archivo2==NULL)
  10.     {
  11.     system("CLS");
  12.     printf("error");
  13.     system("pause>nul");    
  14.     exit(1);    
  15.     }else
  16.     {
  17.     system("CLS");
  18.     printf("succes");
  19.     system("pause>nul");    
  20.     }    
  21.            
  22.       }
  23. //----------------------------------------------------------------------------------------------------------------------------              
  24. void leer()
  25.    {
  26.       FILE *archivo;    
  27.       char caracter[80];
  28.       int a=0;
  29.       char c;
  30.       archivo=fopen("actualizar.txt","r");  
  31.       if(feof(archivo)!=0){system("CLS");system("pause>nul");printf("no se encontro el final");exit(1);}
  32.       while(feof(archivo)==0)
  33.                              {
  34.                               printf("\nLinea %d:\n",a);
  35.                               fgets(caracter,80,archivo);
  36.                               printf("%s",caracter);
  37.                               a++;
  38.                               }
  39.       fclose(archivo);
  40.       }
  41. //----------------------------------------------------------------------------------------------------------------------------  
  42. void parametros_incorrectos()
  43.                    {
  44.                    system("CLS");
  45.                    printf("Parametros incorrectos");
  46.                    system("pause>nul");          
  47.                              
  48.                    }
  49. //------------------------------------------------------------------------------------------------------------------------------
  50. void final()
  51.     {
  52.     system("CLS");
  53.     printf("GRACIAS POR UTILIZAR ESTE PROGRAMA VUELVA PRONTO");                                                                                                                    
  54.     system("pause>nul");
  55.     exit(1);
  56.                                                                                                                        
  57.                                                                                                                        
  58.     }
  59.  
  60. //-------------------------------------------------------------------------------------------------------------------------------
  61. int main(int argc, char *argv[])
  62. {
  63. system("color 0b");
  64. //----------------------variables------------------------
  65. FILE *archivo;
  66. FILE *archivo2;
  67. archivo=fopen("actualizar.txt","r+");
  68. archivo2=fopen("buffer.txt","w+");
  69. int op=0;
  70. int op2=0;
  71. int a=0;
  72. char texto[255];
  73. char caracter[80];
  74. char caracter2[80];
  75. //-------------------------------------------------------
  76. validar(archivo);
  77. do
  78. {
  79. system("CLS");
  80. printf("\n-------------------BIENVENIDOS AL PROGRAMA QUE ACTUALIZA LINEAS-------------------\n");
  81. printf("EL texto original dice:\n");
  82. leer(archivo);  
  83. printf("\n\nEscoja una opcion:");
  84. printf("\n1.Ingresar fila a sustituir");
  85. printf("\n2.Salir");
  86. printf("\nSu opcion elegida fue:");
  87. fflush(stdin);
  88. scanf ("%d",&op);
  89. fflush(stdin);  
  90. switch(op)
  91.   {
  92.   case 1:
  93.          printf("\nEditara la fila nro.");
  94.          scanf ("%d",&op2);
  95.          printf("\nTexto que desea incluir:\n");
  96.          scanf ("%s",&texto);
  97.          fputs(texto,archivo2);
  98.          printf("\n\nNuevo texto:\n");
  99.          if(feof(archivo)!=0){system("CLS");system("pause>nul");printf("no se encontro el final");exit(1);}
  100.        
  101.          do
  102.              {
  103.                
  104.                if(a!=op2)
  105.                        {
  106.                        
  107.                        fputs(texto,archivo2);
  108.                        }    
  109.                
  110.                
  111.                fgets(caracter,80,archivo);
  112.                printf("%s",caracter);
  113.                a++;  
  114.                      
  115.              
  116.               }while(feof(archivo)==0);
  117.        
  118.  
  119.   fclose(archivo);
  120.  fclose(archivo2);
  121.   system("pause>nul");
  122.   break;
  123.   case 2:
  124.          final();
  125.   break;
  126.   default:
  127.          parametros_incorrectos();
  128.   break;    
  129.   }  
  130. }while(op!=2);  
  131. }
men espero que te haya quedado un poquito mas claro mi codigo