|
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
« 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
« 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
« 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
« 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
« 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
« 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: #include <time.h> #include <stdio.h> #include <conio.h> #include <sys/types.h> #include <sys/stat.h> main(){ char file[] = "C:/Users/Alex/Desktop/ArchivosC/pepe.txt"; char t[ 100 ] = ""; struct stat b; if (!stat(file, &b)){ printf("nLast modified date and time = %sn", t ); } else{ printf("Cannot display the time.n"); } }
7
« 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
« 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
« 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
« 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
« 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
« 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
« 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
« 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]
|
|
|