• Lunes 29 de Abril de 2024, 04:21

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.


Temas - alex1510

Páginas: [1]
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++ / 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.

5
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.

6
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.  

7
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

8
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.

9
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

10
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;    
}

11
C/C++ / Archivo mas reciente
« en: Miércoles 28 de Octubre de 2009, 10:28 »
Hola buenas.
Me gustaría hacer un programa que copiara cada 30 segundos un archivo de una carpeta a otra. La condicion es que en la primera carpeta hay muchos archivos, y no conozco los nombres, querria copiar el mas reciente, el que esta en ejecucion. Hay alguna forma de detectar ese archivo de ultima modificación??Gracias

12
C/C++ / Busco tutor online
« en: Lunes 26 de Octubre de 2009, 19:52 »
Hola buenas.
Estoy realizando mi proyecto final de carrera en una empresa, y necesito ayuda para realizar un programa en C, ya que yo he estudiado electrónica, y di C muy por encima. Mi problema es el siguiente:
Tenemos una máquina que va poniendo capas de fibra de carbono para las alas del avión. Esta máquina va generando de forma continua el archivo que adjunto y que nos interesa. Lo que queremos obtener de ese archivo es cuando esta parada (stop cycle), cuando esta funcionando (start cycle), cuando esta en avería y por la capa que va, para poder hacer una barra de progreso que indique el tiempo aproximado de finalización de la pieza. Todo esto lo quiero hacer mediante un scada (wincc v7), por lo que necesito mandarle al scada variables con las que jugar, luego ya este se encargara de hacer graficos e historiales con la información recibida.
Hasta ahi creo que me he explicado:
Localizar el archivo dentro del directorio es el primer problema. Tenemos que saber cual es el ultimo archivo que se esta modificando, y una vez localizado, leerlo cada cierto tiempo (30seg). Se genera un archivo por pieza construida.
Dentro del tiempo de construccion de la pieza, se incluyen los tiempos de poner y quitar el útil. Para controlar este tiempo voy a poner un pulsador para que el operador al pulsar sobre él, indique Cambio de Pieza, es decir, cuando he sacado la pieza elaborada, pulso y le indico que voy a comenzar a introducir los utiles para la nueva pieza.

Mi idea es conseguir lo que se observa en la presentación de power point, si no igual, parecido.
De esta forma puedo llevar la cuenta del tiempo que lleva parada la maquina y el por qué, para elaborar graficos y un pareto.
Por tanto, mi duda se resume en conseguir leer de ese archivo las varibles que indiquen el estado del sistema (parado, marcha, averia, velocidad reducida(feed_rate<70), nombre de pieza y plano por el que va la construccion de la pieza) para que las utilice wincc.

Por ultimo quiero decirte que el archivo ese de la maquina se va generando en el ordenador de control de la maquina, y yo voy a utilizar otro ordenador. La solución ideal sería crear una intranet entre ambos, conectarlos mediante ethernet y poner el directorio de almacenamiento de historiales a compartir no?? Cada 30 segundos accederiamos al directorio del ordenador de control, copiariamos el archivo, lo pegariamos en el ordenador del programa y lo leeriamos desde la ultima linea donde lo dejamos.

Te pongo el link donde se refleja la pantalla final que quiero obtener de la lectura del archivo.
Archivo rapidshare.de/files/48526391/Captura_Datos_Airbus_v4_ivan.rar.html

Adjunto mando algunos part history de la máquina, pero si hacen falta mas dispongo de miles.

Espero una pronta respuesta y que me asignen pronto un tutor que si pudiera ser tuviera conocimientos de wincc, ya que me ayudaría en gran cantidad.

Un saludo

13
VBA / Duda filtro y cambiar de fila
« en: Martes 13 de Octubre de 2009, 18:57 »
Hola buenas:
Tengo el siguiente archivo que va generando una maquina continuamente y necesito filtrar algunas instrucciones y pasarlas a otra hoja. Ya he conseguido que se actualice con aplication ontime cada 30 segundos y lo he programado para que se sobreescriba. Mi problema es que solo quiero leer a partir de donde lo dejo la ultima vez, es decir, hacer un filtro a partir de ahí. Les agradecería mucho que me dijeran como se le pone a cada instrucción un número, es decir, en la columna A un número que identifique esa instrucción, pero que solamente llege asta el final del texto, no como yo tengo ahora hasta la fila 65500.jjj.que le di a rellenar con una serie.
Miren, para hacerse a la idea:
Tengo esto:
520   04/05/2009   17:45:59   ALERT   2903 90 Cycle Start Pressed         2   42
521   04/05/2009   17:46:00   ALERT   1900 90 Automatic Cycle Started         2   42
522   04/05/2009   17:46:01   DATAPOINT   FEED_RATE_OVERRIDE=100            
523   04/05/2009   17:46:03   MESSAGE   PLY NAME ======> P1-61   3   0      
524   04/05/2009   17:46:03   MESSAGE   PLY CREATED ===> 2006/01/17 12:16:55   3   0      
525   04/05/2009   17:46:03   MESSAGE   BNDLNAM=YF00D TRAMPA WING PRAL.IZQ.   3   0      
526   04/05/2009   17:46:03   MESSAGE   PROGNAM=NC0003   3   0      
527   04/05/2009   17:46:06   MESSAGE   PLYNAME=P1-61          / STARTED   3   1      
528   04/05/2009   17:46:06   MESSAGE   COURSE=0001            / STARTED   3   1      
529   04/05/2009   17:46:16   MESSAGE   COURSE=0001            / ENDED   3   1      
530   04/05/2009   17:46:20   MESSAGE   COURSE=0002            / STARTED   3   2      
531   04/05/2009   17:46:30   MESSAGE   COURSE=0002            / ENDED   3   2      
532   04/05/2009   17:46:30   MESSAGE   PLYNAME=P1-61          / ENDED   3   2      
533   04/05/2009   17:46:30   MESSAGE   EST-CYCLE-TIME=    0.41 MINUTES   3   2      
534   04/05/2009   17:46:30   MESSAGE   EST-TOW-LENGTH=    59238.27 MMS   3   2      
535   04/05/2009   17:46:34   MESSAGE   VERIFICAR CAPA   3   2      
536   04/05/2009   17:46:34   ALERT   2907 90 M00-Executed         3   2
537   04/05/2009   17:46:35   ALERT   1902 90 Automatic Cycle Stopped         3   2
538   04/05/2009   17:46:35   ALERT   2903 90 Cycle Start Pressed         3   2
539   04/05/2009   17:46:37   ALERT   1900 90 Automatic Cycle Started         3   2

y quiero algo como esto:

5571   2009-06-22 19:46:02.000   2009-06-22 19:47:16.000   74   Parada   PARADA   Fiber1   NULL
5572   2009-06-22 19:47:16.000   2009-06-22 19:47:36.000   20   Velocidad Reducida   VELOCIDAD REDUCIDA   Fiber1   NULL
5573   2009-06-22 19:47:36.000   2009-06-22 19:52:28.000   292   Parada   PARADA   Fiber1   NULL
5574   2009-06-22 19:52:28.000   2009-06-22 19:52:30.000   2   Velocidad Reducida   VELOCIDAD REDUCIDA   Fiber1   NULL
5575   2009-06-22 19:52:30.000   2009-06-22 19:52:32.000   2   Entrada   ENTRADA   Fiber1   NULL
5576   2009-06-22 19:52:32.000   2009-06-22 19:53:02.000   30   En Marcha   EN MARCHA   Fiber1   NULL
5577   2009-06-22 19:53:02.000   2009-06-22 19:53:06.000   4   Entrada   ENTRADA   Fiber1   NULL
5578   2009-06-22 19:53:06.000   2009-06-22 19:56:10.000   184   Velocidad Reducida   VELOCIDAD REDUCIDA   Fiber1    Velocidad Reducida                              
5579   2009-06-22 19:56:10.000   2009-06-22 19:56:56.000   46   Parada   PARADA   Fiber1   NULL
5580   2009-06-22 19:56:56.000   2009-06-22 19:56:58.000   2   Velocidad Reducida   VELOCIDAD REDUCIDA   Fiber1   NULL
5581   2009-06-22 19:56:58.000   2009-06-22 19:57:28.000   30   Entrada   ENTRADA   Fiber1   NULL
5582   2009-06-22 19:57:28.000   2009-06-22 19:57:30.000   2   Parada   PARADA   Fiber1   NULL
5583   2009-06-22 19:57:30.000   2009-06-22 19:57:34.000   4   Entrada   ENTRADA   Fiber1   NULL
5584   2009-06-22 19:57:34.000   2009-06-22 20:20:58.000   1404   Velocidad Reducida   VELOCIDAD REDUCIDA   Fiber1    Velocidad Reducida                              
5585   2009-06-22 20:20:58.000   2009-06-22 20:35:10.000   852   En Marcha   EN MARCHA   Fiber1   NULL
5586   2009-06-22 20:35:10.000   2009-06-22 20:35:42.000   32   Parada   PARADA   Fiber1   NULL
5587   2009-06-22 20:35:42.000   2009-06-22 20:36:30.000   48   En Marcha   EN MARCHA   Fiber1   NULL
5588   2009-06-22 20:36:30.000   2009-06-22 20:37:00.000   30   Parada   PARADA   Fiber1   NULL
5589   2009-06-22 20:37:00.000   2009-06-22 20:41:22.000   262   En Marcha   EN MARCHA   Fiber1   NULL
5590   2009-06-22 20:41:22.000   2009-06-22 20:41:40.000   18   Parada   PARADA   Fiber1   NULL
5591   2009-06-22 20:41:40.000   2009-06-22 20:42:20.000   40   En Marcha   EN MARCHA   Fiber1   NULL
5592   2009-06-22 20:42:20.000   2009-06-22 20:42:40.000   20   Parada   PARADA   Fiber1   NULL
5593   2009-06-22 20:42:40.000   2009-06-22 20:42:42.000   2   Velocidad Reducida   VELOCIDAD REDUCIDA   Fiber1   NULL
5594   2009-06-22 20:42:42.000   2009-06-22 20:42:44.000   2   Entrada   ENTRADA   Fiber1   NULL
5595   2009-06-22 20:42:44.000   2009-06-22 20:44:58.000   134   Parada   PARADA   Fiber1   NULL
5596   2009-06-22 20:44:58.000   2009-06-22 20:45:00.000   2   Velocidad Reducida   VELOCIDAD REDUCIDA   Fiber1   NULL

Se que es complicado, pero me ayudarian mucho diciendome lo del indice de la columna A y como grabar el indice de la ultima instruccion y sumarle uno para así, en el proximo ciclo solamente partir desde esa instrucción para filtrar.
Gracias

14
VBA / Abrir archivo texto mas reciente
« en: Sábado 10 de Octubre de 2009, 19:25 »
Hola buenas.
Miren, soy estudiante de ingeniería y tengo algunos conocimientos de vba, pero me han planteado un problema sumamente complicado para mi.
Se trata de una maquina de cnc que va escribiendo un historial a medida que realiza una pieza . Mi duda es que yo, cuando me conecte cada 30 segundos a ese historial, por medio de ethertet, debo escoger un archivo de todos los que habra, concretamente el que se este rellenando en ese momento. Luego esos datos necesito filtrarlos y quedarme con ciertas paradas, para elaborar un scada y una serie de graficos. Cómo podría hacer un programa que leyera cada 30 seg el ultimo archivo de texto modificado (o en ejecución) de una carpeta donde hay muchos (uno por cada pieza que fabrica la maquina). Gracias

Los archivos de texto tienen un título de la siguiente forma: 2009_05_04 15_42_28 YF00D.plf (año,mes,dia,hora,pieza fabricada)

Páginas: [1]