Jump to content

RigoPerdido

Warianos
  • Posts

    17
  • Joined

  • Last visited

Información Personal

  • Pais
    Chile
  • Genero
    Hombre

RigoPerdido's Achievements

Newbie

Newbie (1/14)

0

Reputation

  1. Te falta darle un valor inicial a datos, por ejemplo, agrega el constructor de la clase y ahí asignas NULL: Lista() { datos=NULL; } En la primera inserción no se evalúa como NULL ya que no posee valor inicial (o como dicen, basura xD) ;) slds
  2. Puede no ser la solución mas optima, pero por algo se empieza :hide: Slds #include <stdio.h> #include <string.h> int main(int argc, char **argv) { char rut_menor[15]="9999999999"; FILE *archivo=fopen("./lista.txt","r"); if(archivo) { char buffer[255]; short iteracion=0; int largo; while(1) { fgets(buffer,255,archivo); largo=strlen(buffer); buffer[largo-1]='\0'; if(feof(archivo)) break; if(iteracion==0) printf("Cabecera: %s\n",buffer); else if(iteracion==1) { printf("\nRut: %s\n",buffer); if(strcmp(buffer,rut_menor)<0) strcpy(rut_menor,buffer); } else if(iteracion==2) { printf("Datos cuenta: %s\n",buffer); iteracion=0; } iteracion++; } fclose(archivo); printf("\nMenor rut: %s\n",rut_menor); } return 0; }
  3. Básicamente, para lograr lo que quieres hacer, deberás construir un sistema de plugins a punta de interfaces. Por medio de interfaces, estandarizas el funcionamiento de todas tus extensiones, de manera que el binario final (La aplicación principal) se comunique con cualquier extensión detectada. (Típico caso de los programas que implementan plugins, en donde existe una carpeta donde cada vez que se inicia la app, reconoce todas las dlls nuevas y que implementan las interfaces conocidas) Aquí pille un blog con info en español: http://thecoldsun.com/es/content/01-2009/s...rte-i-conceptos slds
  4. Extraido desde el centro de recursos aqui en Chilecomparte: http://www.devjoker.com/gru/tutorial-PL-SQL/PLSQ/Tutorial-PL-SQL.aspx slds :)
  5. obviamente si escribes la estructura al archivo usando fwrite, al abrir el archivo no veras los datos con su respectiva representación en caracteres. Si lo que quieres es escribir datos en un archivo de texto plano deberás usar fprintf por cada miembro de la estructura, caso contrario, si es en un archivo binario, usas fwrite. #include <stdio.h> typedef struct empleado { char nombre[11]; char apellido[16]; int sueldo; int cargas; char seguro[8]; char afp[11]; } emp_s; int main(int argc,char* argv[]) { emp_s em; FILE *e; e=fopen("empleados.txt","w"); printf("Ingrese Nombre :"); fflush(stdin); gets(em.nombre); printf("Ingrese Apellido :"); fflush(stdin); gets(em.apellido); printf("ingrese Sueldo :"); fflush(stdin); scanf("%d",&em.sueldo); printf("Ingrese Cargas Familiares :"); fflush(stdin); scanf("%d",&em.cargas); printf("Ingrese Seguro de salud= Fonasa /Isapre :"); fflush(stdin); gets(em.seguro); printf("Ingrese AFP :"); fflush(stdin); gets(em.afp); fflush(stdin); /*fwrite(&em, sizeof(struct empleado),1,e);*/ fprintf(e,"(%s)(%s)(%d)(%d)(%s)(%s)\n",em.nombre,em.apellido,em.sueldo,em.cargas,em.seguro,em.afp); fclose(e); } Y si usas un ofstream de C++: std::ofstream os; os.open("texto.txt",std::ios::trunc); os<<em.nombre<<", "<<em.apellido<<", "<<em.sueldo<<", "<<em.cargas<<", "<<em.seguro<<", "<<em.afp<<std::endl; os.close(); Saludos. ;)
  6. Si las filas y las columnas son iguales, matriz.length sera igual que matriz.length supongo que de eso se trata :)
  7. No pude probar los códigos, pero creo que mas o menos se entenderán: 1. Arrojas una excepcion personalizada con raise_application_error: CREATE OR REPLACE TRIGGER trigger_test BEFORE INSERT ON VENTA FOR EACH ROW DECLARE stockAntiguo number; BEGIN SELECT SUM(cantidad) INTO stockAntiguo FROM producto WHERE cod_producto = :new.cod_producto; IF stockAntiguo < :new.cantidad THEN raise_application_error(-20001, 'Stock insuficiente' ); END IF; END trigger_test; 2. Como lo tienes, quedaría mas o menos: CREATE OR REPLACE PROCEDURE TOTALVENTA( ID IN VARCHAR2 ) AS CURSOR C_CURSOR IS SELECT PRECIO FROM VENTADETALLE WHERE ID_VENTA = ID; V_TOTAL NUMBER; BEGIN FOR(REG IN C_CURSOR)LOOP V_TOTAL:=V_TOTAL+REG.PRECIO; END LOOP; UPDATE VENTACABEZERA SET PRECIO = V_TOTAL WHERE ID_VENTA = ID; END; Aunque, podrías usar un cursor implícito y recuperas la suma total de una sola vez CREATE OR REPLACE PROCEDURE TOTALVENTA( ID IN VARCHAR2 ) AS V_TOTAL NUMBER; BEGIN SELECT SUM(PRECIO) INTO V_TOTAL FROM VENTADETALLE WHERE ID_VENTA = ID; UPDATE VENTACABEZERA SET PRECIO = V_TOTAL WHERE ID_VENTA = ID; END; ;)
  8. ufff, que difícil costo, pero salio. :) Me enfoque solo en la parte de procesar las palabras, lo de la lectura desde un archivo es lo de menos creo. No se si sera la mejor solución, pero me salio una función como con 500 if y 250 else.... Como dicen anteriormente l@s colegas de arriba, recorres en 2 for anidados cada posición del primer par de letras (Como una matriz) y vas comparando cada letra si son iguales, cuando esto ocurra, guardas el indice de cada palabra en el que compartían una misma letra, luego te sales de los dos for. Para mostrar las palabras de la forma que lo piden, nuevamente a través de 2 for anidados, preguntas, cuando la posicion en x sea igual al indice de la palabra, muestras una letra de la palabra vertical y asi sucesivamente tambien en el caso de las posiciones horizontales. Por cada ciclo finalizado del for que recorre verticalmente, das un salto de linea (\n), por cada posicion en donde no corresponde escribir una letra, escribes un espacio. saludos
  9. cual es el pass La pass es: www.chile(Palabra Censurada).org Muy agradecido por la peli compaaareee :) Slds
  10. esta weaa es muy buenaaaaaaaaaa bananasos para ti aunque ya tenia las imagenes de esta excelencia en ingles y español :banana: :banana: :banana: :banana:
×
×
  • Create New...