• Domingo 28 de Abril de 2024, 21:57

Mostrar Mensajes

Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.


Mensajes - alex1510

Páginas: [1] 2
1
MySQL / Cambios en BBDD
« en: Miércoles 11 de Agosto de 2010, 18:23 »
Hola buenas:

Tengo hecho un programa en VB que guarda datos en una base de datos en el servidor. Quiero que otro programa situado en otro cliente se entere de cuando se ha introducido el cambio en la BBDD. Lo tengo programado para que cada 5seg lea la base de datos y compruebe si el número de id es mayor que el anterior, pero no me parece eficiente acceder cada 5 seg a la base de datos.

Gracias de antemano.

2
C/C++ / Lectura de fichero
« en: Martes 1 de Diciembre de 2009, 13:39 »
Hola buenas. Me estoy volviendo loco con un problema que tengo que resolver. A ver si alguien me da alguna idea intuitiva de como hacerlo. Se trata de leer un archivo de texto y obtener valores, leyendo los tokens. Todo eso esta resuelto. El problema es que yo accedo a copiar y pegar el fichero cada cierto tiempo, y en ese momento puedo encontrarme la línea a la mitad, y tener partido los tokens que me interesan. Lo suyo sería detectar cuando una linea se finaliza, y si no ha finalizado, no copiar la última linea. Esto se que no se puede hacer, pero observando los tokens que me interesan, puedo decir, que si la ultima linea no tiene 53 caracteres como mínimo, no la copie. Alguien me podría decir alguna otra forma, o si esta esta bien, alguna idea de como hacerlo???Es que estoy un poco perdido. Gracias de antemano

3
C/C++ / Borrar ultima linea fichero
« en: Domingo 29 de Noviembre de 2009, 22:58 »
Hola buenas. Pues en primer lugar, dar las gracias todos los miembros del foro, que tantas dudas me esta resolviendo y bueno, espero que esta sea ya la ultima que me surja. Cómo puedo borrar la última linea de un fichero este vacia o no??es decir tenga algo escrito o este vacia?? GRACIAS

4
C/C++ / Re: Leer linea txt
« en: Sábado 28 de Noviembre de 2009, 22:21 »
Me parece buena idea. Yo he conseguido solucionarlo, retrocediendo hasta que se encuentre un n, es decir, hasta el final de la linea anterior. No se que te parecera así. Me funciona bastante bien asi. Un saludo y gracias por responder

5
C/C++ / Leer linea txt
« en: Viernes 27 de Noviembre de 2009, 00:19 »
Hola buenas. Espero que me entiendan el problema que tengo y a ver si encuentran alguna solucion. A mi no se me ocurre nada. Estoy elaborando un programa que cada minuto lee un archivo de texto. Yo en esta lectura detecto algunos tokens que me interesan. El problema es el siguiente: el archivo de texto se va actualizando continuamente, por lo que la mayoria de las veces, la ultima linea no la leo completa. Para leer, lo hago con fgets y con un while(!feof). El problema es que yo, al llegar al final, guardo la posición, para, en el siguiente acceso a la lectura, continuar desde ahi. El problema es que si en la ultima linea, se ha partido un token de los que me interesan, pues no lo detecto, pues una parte quedo ya en el tramo leido con anterioridad y otra en el tramo nuevo (los tokens los cojo con strcmp). Yo he pensado(a no ser que se os ocurra algo mejor), en que en vez de guardar la posición final, guardar la posición del comienzo de la ultima linea, pero no veo claro como hacerlo. Estoy un poco confuso. Espero me hayan comprendido y sepan darme en la medida de lo posible una solución, con la cual les estaria muy agradecido por mi parte. GRACIAS por leerme.

6
Visual Basic 6.0 e inferiores / Re: Hacer ActiveX base datos
« en: Jueves 19 de Noviembre de 2009, 21:29 »
Nebire, perdon por la tardanza en contestar, ya que como ves he estado conectado, pero me ha surgido un incidente y me tuve que marchar con el mensaje a medias. Siento haber tardado.

7
Visual Basic 6.0 e inferiores / Re: Hacer ActiveX base datos
« en: Jueves 19 de Noviembre de 2009, 18:22 »
Madre mia!!no me lo puedo creer. gracias gracias gracias. Me estoy jugando la plaza en un empresa, ya que soy becario y respecto a  lo de la recompensa, pienso darte dinero por que aunque digas que no te cuesta nada, siempre es tiempo que gastas y yo debo pagartelo. Pues mira, te explico perfectamente todo lo que quiero:
Actualmente tengo un programa hecho en wincc, en el que quiero implementar ese sistema de alarmas, ya que el control activex que trae, tiene muchas limitaciones y no hace lo que quiero. Te lo explico paso a paso:

1.1. Tengo una variable bool que me indica si la maquina esta en marcha o paro. Cada vez que esta variable se pone a 1(paro), quiero que me muestre una línea en una tabla que muestre la fecha y la hora en una columna, en otra columna un "cronometro" que se pare cuando la variable vuelva a 0 (marcha), es decir, que marque la duración de la parada. Por ultimo quiero otra columna que permita al usuario introducir la causa de la parada eligiendola de un menu desplegable. Si la duración de la parada registrada es menor de 1min, automáticamente, en el campo de causa debe escribirse microparada. Creo que hasta aqui me he explicado.

1.2. Tengo otra variable bool que indica si la maquina esta funcionando por debajo del 100%, simplemente quiero que registre ese tiempo y el valor de la velocidad que te paso como int., para saber cuanto tiempo ha ido por ejemplo al 60%, o si prefieres te paso solamente el int y comparas si es menor que 100 para mostrar el aviso.

2. Habrá veces en las que yo, pueda detectar la causa de la parada automáticamente, con lo cual esas veces te puedo pasar la causa mediante una variable char y asi evito al operario tener que introducir a mano la causa de la parada, si no te mando variable char, pues que permita introducir causa, o si prefieres te puedo mandar otra variable bool distinta que te indique que se ha parado, pero que sabes la causa.

3. Necesito saber la causa que ha introducido el operario, ya que dependiendo de si es alguna determinada, necesito mandar un sms, por ejemplo, si el operario introduce que la causa de la parada ha sido por rotura de alguna pieza, mando un sms a mantenimiento.

4. Por ultimo quiero almacenar estos datos en una base de datos, la que quieras, acces o sql, manejo acces pero me adaptaria a lo que tu quisieras y mostrar en  la pantalla del operario por ejemplo las 50 primeras para que el seleccionara la causa cuando quisiera.

5. Todo esto lo tengo que integrar en wincc con variables internas.

Te adjunto una imagen de una muestra que nos hicieron, que es lo que yo quiero pero con menús desplegables para que sea mas intuitivo.


Espero no haber tirado por suelo tus intenciones de ayudarme. No se si lo veras muy complicado. Por favor, necesito tu ayuda y quiero recompensartela. Espero tu respuesta y si estas de acuerdo con hacerlo te paso el contenido del menú desplegable. Te agradezco de antemano solo haber respondido a mi mensaje. Si tuvieras mas consultas, si quieres te paso o me pasas el numero de telefono por privado y me pongo en contacto contigo de inmediato. Gracias

8
Visual Basic 6.0 e inferiores / Hacer ActiveX base datos
« en: Jueves 19 de Noviembre de 2009, 12:08 »
Hola buenas. Me encuentro realizando un programa en Wincc y necesito un ActiveX muy parecido a uno que trae. Se trataría de una tabla que muestre las alarmas activadas con unas variables bool y que permita introducir algun dato sobre la alarma seleccionada y almacenarlo todo en una base de datos. No se si seria muy complicado. Ofrezco recompensa economica pero requiero el control YA, es muy urgente. Por favor, me juego mucho con este programa y necesito ayuda.

9
C/C++ / Re: Manejo de archivos
« en: Domingo 15 de Noviembre de 2009, 19:17 »
Hola buenas. Ya he conseguido hacerlo (creo). Adjunto el código. Me queda una duda que no consigo resolver y espero conozcan. Las funciones find first file y find next file te muestran los archivos por que orden??? ultima modificación???.Gracias. Tampoco se para que sirve dwerror y getlasterror.
Código: C
  1.  
  2. #include <windows.h>
  3. #include <stdio.h>
  4. #include <windows.h>
  5. #include <stdio.h>
  6. #include <stdlib.h>
  7. #include <sys/stat.h>
  8. #include <dirent.h>
  9. #include <unistd.h>
  10.  
  11. main()
  12. {
  13. DWORD dwError = ERROR_SUCCESS;
  14. HANDLE hFind;
  15. WIN32_FIND_DATA FindFileData;
  16. //Find last modified log file
  17.     hFind = FindFirstFile("B:/EN6/*.plf", &FindFileData);
  18.     if (hFind == INVALID_HANDLE_VALUE)
  19.     {
  20.       printf ("Fallo encontrar el primer archivo (%d)n", GetLastError());
  21.       return;
  22.     }
  23.     else
  24.     {
  25.       printf("El primer archivo encontrado es %sn",FindFileData.cFileName);
  26.  
  27.       //List all the other files in the directory.
  28.       while (FindNextFile(hFind, &FindFileData) != 0)
  29.       {
  30.          printf ("Siguiente es %sn", FindFileData.cFileName); //NOT DISPLAYING ALL NAMES CONSISTENTLY??
  31.  
  32.       }
  33.  
  34.       dwError = GetLastError();
  35.       FindClose(hFind);
  36.  
  37.       if (dwError != ERROR_NO_MORE_FILES)
  38.       {
  39.          printf ("FindNextFile error. Error is %u.n", dwError);
  40.          return (-1);
  41.       }
  42.  
  43.     }
  44.     getchar();
  45. }
  46.  
  47.  
  48.  

10
C/C++ / Re: Manejo de archivos
« en: Domingo 15 de Noviembre de 2009, 15:51 »
No lo consigo hacer. Por favor, alguien me puede prestar algo de ayuda??Se que van encaminado a lo que dice Eternal, pero no consigo avanzar. No se que mas debo hacer. Gracias

11
C/C++ / Re: Manejo de archivos
« en: Martes 10 de Noviembre de 2009, 22:59 »
Ok. Sirve de ayuda, pero si quiero solo los que tienen extension .plf me pierdo, además los tendría que recorrer y no se me ocurre la forma.

12
C/C++ / Manejo de archivos
« en: Martes 10 de Noviembre de 2009, 17:45 »
Hola buenas. He conseguido una función que me dice cual es la fecha de modificación de un archivo. Lo que no consigo es, en un conjunto de archivos de una carpeta, todos ellos con la misma extensión y con diferente nombre, quedarme con el ultimo modificado. Sabría alguien decirme algo?? Muchas gracias.
El codigo para el ultimo modificado es:
Código: C
  1.  
  2. #include <time.h>
  3. #include <stdio.h>
  4. #include <conio.h>
  5. #include <sys/types.h>
  6. #include <sys/stat.h>
  7. main(){
  8.     char file[] = "C:/Users/Alex/Desktop/ArchivosC/pepe.txt";
  9.     char t[ 100 ] = "";
  10.     struct stat b;
  11.     if (!stat(file, &b)){
  12.         strftime(t, 100, "%d/%m/%Y %H:%M:%S", localtime( &b.st_mtime));
  13.         printf("nLast modified date and time = %sn", t);
  14.     }
  15.     else{
  16.         printf("Cannot display the time.n");
  17.     }
  18.     getch();
  19. }
  20.  
  21.  

13
C/C++ / Re: Retardo temporal
« en: Sábado 7 de Noviembre de 2009, 00:30 »
Hola. Muchas gracias a todos por las respuestas. Pues es que yo me estoy metiendo en C a base de golpes, vamos, que yo he estudiado electronica y ahora necesito C para elaborar mi proyecto con un Scada Wincc. Pues resulta que tengo un proceso principal programado que al llegar a un punto quiero que espere 30 seg y luego continue. El problema es que durante ese tiempo (ya sea con sleep como con un bucle con clock) solamente esta atento a esa funcion principal y no hace caso por ejemplo si pulso algún botón. Para haceros una idea, wincc te proporciona un entorno grafico con botones y demas parecido a visual C. Entonces, estoy perdidisimo y no se que puedo hacer. Esta mañana cuando lo "puse a funcionar" me paso y me he hundido bastante. Despues me he parado y he comprendido por que no hace caso al pulsar los botones, pero no tengo ni idea de como hacer para que funcionen. Por favor, cualquier cosa lo agradecería enormemente. Gracias por leerme.

14
C/C++ / Re: Retardo temporal
« en: Jueves 5 de Noviembre de 2009, 21:26 »
Gracias!!!Voy a probar a ver si me funciona.

15
C/C++ / Retardo temporal
« en: Jueves 5 de Noviembre de 2009, 18:37 »
Hola buenas.
Tengo el siguiente problema. Necesito hacer un retardo de 30 seg pero no puedo utilizar sleep por que quiero que el programa continue ejecutándose, y con el sleep digamos que lo duermo y no hace nada. Podría hacer algo???Gracias

16
C/C++ / Re: Copiar fichero
« en: Martes 3 de Noviembre de 2009, 23:41 »
no puedo situar ub puntero??

17
C/C++ / Re: Copiar fichero
« en: Martes 3 de Noviembre de 2009, 23:08 »
Ya estoy realizando el programa, pero me encuentro con un problema. Si cierro el archivo de entrada, al volverlo a abrir, como puedo leer las 3 siguientes lineas siguientes a las anteriores, es decir, como se donde deje de leer antes de cerrar el archivo. Gracias

18
C/C++ / Re: Copiar fichero
« en: Martes 3 de Noviembre de 2009, 21:25 »
Gracias por la respuesta. Ya habia oido que el goto no le utilizara. Muchas gracias por la respuesta. Yo el problema que veo es al llegar al final del archivo, que no se lo que haría. Gracias

19
C/C++ / Re: Warning con lectura de cadena
« en: Lunes 2 de Noviembre de 2009, 22:51 »
me respondo a mi mismo. tenia que definir la libreria string.h; por mi parte pueden cerrar el tema. lo siento por haberlo abierto sin haber estudiado bien el problema, pero es que me estaba volviendo loco.gracias

20
C/C++ / Re: Copiar fichero
« en: Lunes 2 de Noviembre de 2009, 22:49 »
si, eso yo también lo se, pero el programa, extrañamente se cierra después de la primera ejecución. me puede decir como lo puedo hacer??porque ha entendido lo que pretendo verdad??gracias por atenderme

21
C/C++ / Warning con lectura de cadena
« en: Lunes 2 de Noviembre de 2009, 20:59 »
Si quiero dividir una cadena con strtok y esta cadena la introduzco asi:

char cadena[]= "2009.04.17 15:14:01 PARTNUMBER F551-82720-000";

        ptrPartNumber=NULL;
        ptrToken=strtok(cadena, " " );
        printf("%sn",cadena);

funciona bien, pero si la cadena pido que la lea de un archivo de texto asi:

fgets(cadena,100,archivo);

me da el siguiente warning:  [Warning] assignment makes pointer from integer without a cast

Me pueden decir por favor que tengo que retocar??? Gracias. Creo que es algo del tamaño del string pero no se.

22
C/C++ / Copiar fichero
« en: Lunes 2 de Noviembre de 2009, 20:06 »
Hola buenas.
Expongo el siguiente codigo que no consigo que haga lo que quiero y no se donde esta el problema. La intencion que tengo es coger un archivo y ir copiando tres lineas cada cierto tiempo a otro, es decir, que al final tendre el mismo archivo pero que se ha ido rellenando con el tiempo. He puesto un retardo de 10 segundos para que se rellenen las 3 lineas.

main ( )
{
FILE *fin;
FILE *fout;
char linea[300];
char x;
int i;
reinicio:
if (((fin = fopen("PartHistory.plf", "r")) == NULL) || ((fout = fopen("Prueba.txt" , "a")) == NULL))
   {
          if (fout != NULL) fclose (fout) ;
             {
                   if (fin != NULL) fclose (fin) ;
                   printf ("Error en la apertura de ficheros de salidan" );
             }
     return 1;
   }


i=0;
do {
     fgets(linea,300,fin);
     fputs (linea, fout);
     i=i+1;
}
while (i<3);

goto reinicio;
fclose (fin);
fclose (fout);
return 0;
Sleep(10000);
}

Por favor, si alguien detecta mi error. Lo que me ocurre es que se ejecuta la primera vez, y luego se cierra el programa. Utilizo dev-c++. Muchas gracias

23
C/C++ / Re: Consulta trabajos con ficheros: Lectura de líneas
« en: Miércoles 28 de Octubre de 2009, 17:32 »
hola buenas.
Me gustaria que alguien me ayudara con un proyecto que tengo y lo veo demasiado para mi (soy electronico). Estaría dispuesto a contratarte y a negociar el dinero. O si conoces a alguien que estuviera dispuesto a ayudarme. Básicamente es para tratar ficheros. Un saludo

24
C/C++ / Por que no me funciona??
« en: Miércoles 28 de Octubre de 2009, 14:17 »
Hola buenas.
Tengo el siguiente código que lo que quiero es que me divida la frase en palabras, y si en la frase encuentra cierta palabra, pues entre en un case. Por ejemplo, si encuentra PARTNUMBER, que me cree una variable con el nombre PARTNUMBER y le asigne el valor F551-82720-000.Gracias

#include <stdio.h>
#include <string.h>



int main()
{
    char cadena[]= "2009.04.17 15:14:01 PARTNUMBER F551-82720-000";
    char *ptrToken;
   
    printf("%sn%snn%sn", "La cadena a dividir en tokens es : ", cadena,
                              "Los tokens son: ");
   
    ptrToken=strtok(cadena, " " );
   
    while (ptrToken !=NULL) {
          printf( "%sn", ptrToken);
                  switch (ptrToken)
                  {
                         case 'PARTNUMBER' //Me dice que ptrToken en muy largo, y si hago ptrToken=palabra, y el switch con palabra no sale
                         
          ptrToken = strtok(NULL, " ");
    }
             
    system("PAUSE");
    return 0;    
}

25
C/C++ / Re: Archivo mas reciente
« en: Miércoles 28 de Octubre de 2009, 13:46 »
dev-C++

Páginas: [1] 2