| Ver tema anterior :: Ver tema siguiente |
| Autor |
Mensaje |
lmartinp Cdt

Registrado: 21 Nov 2003Mensajes: 17Ubicación: Madrid-Almería (España)
|
Publicado: Lun 24 Nov, 2003 11:27 pm Asunto: copiar char en ansitring |
|
|
hola estoy intentando copiar un char en un ansistring pero no logro q funcione.
Saludos. |
|
| Volver arriba |
|
 |
_Leo Site Admin

Registrado: 11 Ago 2002Mensajes: 1875Ubicación: Lanzarote - Islas Canarias (España)
|
Publicado: Lun 24 Nov, 2003 11:39 pm Asunto: |
|
|
Cuenta al menos como lo estas intentando ya que esto no tiene mucha ciencia:
char ch = 'B';
AnsiString as = ch; |
|
| Volver arriba |
|
 |
lmartinp Cdt

Registrado: 21 Nov 2003Mensajes: 17Ubicación: Madrid-Almería (España)
|
Publicado: Lun 24 Nov, 2003 11:43 pm Asunto: asi lo estoy haciendo pero me da error |
|
|
estoy copiando directamente el char en el ansistring pero me da error en la libreria string.h
| Código: |
char x[100];
AnsiString y;
....
....
y=x;
|
otra pregunta es como puedo ir concatenando una cadena char a una ansitring.
muchas gracias y saludos. |
|
| Volver arriba |
|
 |
_Leo Site Admin

Registrado: 11 Ago 2002Mensajes: 1875Ubicación: Lanzarote - Islas Canarias (España)
|
Publicado: Lun 24 Nov, 2003 11:55 pm Asunto: |
|
|
Pues ni idea, lo que pones funciona perfectamente. El problema debe estar en otro detalle.
| Cita: | | otra pregunta es como puedo ir concatenando una cadena char a una ansitring. |
Para concatenar tienes distintas maneras, aquí va una sencilla:
| Código: | char* ch1 = "Esto es";
char* ch2 = "una prueba.";
AnsiString as;
as += ch1;
as += " ";
as += ch2;
ShowMessage(as); |
Y si a lo que te refieres es como ir concatenando caracteres de un mismo array de caracteres es lo mismo:
| Código: | char ch[7] = "Prueba";
AnsiString as;
as += ch[0];
as += ch[1];
//...
as += ch[5]
ShowMessage(as); |
|
|
| Volver arriba |
|
 |
lmartinp Cdt

Registrado: 21 Nov 2003Mensajes: 17Ubicación: Madrid-Almería (España)
|
Publicado: Mar 25 Nov, 2003 12:10 am Asunto: la cadena que estoy copiando termina en \o |
|
|
| la cadena que estoy copiando termina en \o puede ser por eso por lo que no se copie en el AnsiString??? deberia recorrerla caracter a caracter y concaternarla al ansistring??? |
|
| Volver arriba |
|
 |
_Leo Site Admin

Registrado: 11 Ago 2002Mensajes: 1875Ubicación: Lanzarote - Islas Canarias (España)
|
Publicado: Mar 25 Nov, 2003 12:30 am Asunto: |
|
|
| Cita: | | la cadena que estoy copiando termina en \o |
¿Querrás decir en '\0' no? Es que eso es lo normal en una cadena char*, terminan en 0 para indicar que no hay mas caracteres.
Esto es bastante simple y no tiene muchas vueltas, por si quieres enviarme una copia del proyecto que te este dando problemas y le echo un vistazo. Mi email: leosoft ARROBA telefonica PUNTO net |
|
| Volver arriba |
|
 |
lmartinp Cdt

Registrado: 21 Nov 2003Mensajes: 17Ubicación: Madrid-Almería (España)
|
Publicado: Mar 25 Nov, 2003 1:54 am Asunto: ya esta |
|
|
ya me funciona muchismas gracias de verdad.
tengo que leer un archivo con un cierto formato que bajo de la pagina web del inm de meteorologia y el strcmp no comparaba bien y no me leia cuando debia del archivo........................ son predicciones meteorlogicas que guardo en una base de datos y despues las comparo con una base de datos historica, mas grande para poder hacer predicciones a largo plazo......... te pongo el codigo de lo que fallaba y como se ha quedado
| Código: |
bool prediccionProvincia::calcularPrediccion(void)
{
char buf[1000],car;
int punt=0;
bool flag=false;
/*
PREDICIóN
aaaaaaaaaaaa
aaaaaaaaaaaa
aaaaaaaa.
TEMPERATURAS PREVISTAS
*/
//Movemos el puntero al principio del archivo
fseek(archivo, 0L, SEEK_SET);
do{
punt=0;
do{
car=fgetc(archivo);
buf[punt]=car;
punt++;
}while(car!=EOF && car!='\n');
buf[punt-1]='\0';
if(strcmp(buf,"TEMPERATURAS PREVISTAS")==0)
return true;
if(flag)
{
prediccion+=buf;
//strcat(prediccionAux,buf);
prediccion+=" ";
}
if(strcmp(buf,"PREDICCION")==0)
flag=true;
}while(car!=EOF);
return false;
}
|
otra pregunta que te queria decir es como implementarias un hilo para q no consumiera muchos recursos de la cpu. El hilo debe conectarse a ciertas horas a la pagina del inm para obtener la prediccion y guardar la prediccion en una bd. lo tengo implementado de la siguiente forma:
| Código: |
void __fastcall HttpThread::Execute()
{
time_t t;
float hora;
//---- Place thread code here ----
FreeOnTerminate=true;
while(true)
{
t = time(NULL);
struct tm *local;
t = time(NULL);
local = localtime(&t);
hora=(float)local->tm_hour+(float)((float)local->tm_min/100);
// struct tm
//int tm_min; /* Minutes */
//int tm_hour; /* Hour (0--23) */
if(conectar==true)
{
//Tiempo para hoy 6:30
if(conectarHoy==true && hora>6.3)
{
//miramos la prediccion para hoy
Synchronize(hoy);
}
//Tiempo para mañana 10:15
else if(conectarManana==true && hora>1.15)
{
//miramos la prediccion para mañana
Synchronize(manana);
}
//Tiempo proximos dias 13:00
else if(conectarProx==true && hora>13.00)
{
//miramos la prediccion para proximos dias
// Synchronize(proxDias);
}
else
conectar=false;
}
//Si pasa el dia se puede a volver a hacer la conexion
else
{
if(hora>5)
conectar=true;
}
}
|
no se si darle poca prioridad para q no consuma mucha cpu o si hay alguna forma de dormir al hilo pq con sleep tendria q poner un numero muy grande de segundos.
bueno saludos y ya te contare como va la cosa. muchisimas gracias. |
|
| Volver arriba |
|
 |
_Leo Site Admin

Registrado: 11 Ago 2002Mensajes: 1875Ubicación: Lanzarote - Islas Canarias (España)
|
Publicado: Mar 25 Nov, 2003 2:28 am Asunto: |
|
|
| Cita: | | no se si darle poca prioridad para q no consuma mucha cpu o si hay alguna forma de dormir al hilo pq con sleep tendria q poner un numero muy grande de segundos. |
No veo nada de malo en usar Sleep para comprobar cada x tiempo si es la hora adecuada (esto consumiría menos del 1% de CPU) y cuando sea la hora esperada comunicarse con el servidor varias veces hasta que este la información tampoco debería consumir muchos recursos (aunque claro que depende de como te comuniques con el servidor).
Saludos.
PD: Si el enlace al fichero es publico me gustaría echarle un vistazo, por curiosidad, por ver la información que contiene y la estructura de esta ya que tengo un familiar que se interesa bastante por estos temas. |
|
| Volver arriba |
|
 |
lmartinp Cdt

Registrado: 21 Nov 2003Mensajes: 17Ubicación: Madrid-Almería (España)
|
Publicado: Mie 26 Nov, 2003 9:48 am Asunto: instituto nacional de meteorlogía |
|
|
las predicciones las descargo del instituto nacional de meorología www.inm.es. El programa es para un proyecto fin de carrera. Ya te ire comentando como va.
Ahora mismo tengo q interpretar la informacion que ponen en la pagina y pasarlos a valores de 0 a 4 para la radiacion temperatura direccion del viento y velocidad del viento.Por ejemplo:
CIELOS POCO NUBOSOS O DESPEJADOS AUMENTANDO DURANTE LA TARDE A INTERVALOS DE CIELOS NUBOSOS CON NUBOSIDAD MEDIA Y ALTA. BRUMAS Y POSIBILIDAD DE BANCOS DE NIEBLA MATINALES EN ZONAS BAJAS DEL INTERIOR. TEMPERATURAS SIN CAMBIOS O NOCTURNAS EN LIGERO DESCENSO EN EL INTERIOR. VIENTOS DE COMPONENTE OESTE FLOJOS A MODERADOS AUMENTANDO POR LA TARDE A MODERADOS A FUERTES.
Yo habia pensado en dividir en frases e ir buscando palabras clave para despues darle los valores.
Sabes alguna pagina donde traten temas de interpretacion de textos o algo por el estilo.
Muchas gracias y saludos. |
|
| Volver arriba |
|
 |
|