Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Coloboración Paypal con ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 20-02-2013
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Cita:
Empezado por dec Ver Mensaje
Código Delphi [-]
  result := false;
Me parece que esto es redundante. Siendo Result una variable boolean, se inicializa a false automáticamente

// Saludos
Responder Con Cita
  #2  
Antiguo 20-02-2013
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 38
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola KroSaver.

Creo que la forma mas simple es la que te sugiere maeyanes en el segundo mensaje.

Ejemplo Delphi:
Código Delphi [-]
function EncontrarCadena(cad, sub: string): Integer;
begin
  cad:= LowerCase(cad);
  sub:= LowerCase(sub);
  Result:= Pos(sub, cad);
end;
Equivalente C++:
Código:
#include <ctype>
#include <iostream>

int EncontrarCadena(std::string sub, std::string cad)
{
  for(int i=0;cad[i];i++) cad[i] = tolower(cad[i]);
  for(int i=0;sub[i];i++) sub[i] = tolower(sub[i]);
  return cad.find(sub);
}
Equivalente C:
Código:
#include <string.h>
int EncontrarCadena(char *sub, char *cad)
{
  char *d;
  int i;
  for(i=0;cad[i];i++) cad[i] = tolower(cad[i]);
  for(i=0;sub[i];i++) sub[i] = tolower(sub[i]);
  d = strstr(cad, sub);
  if (d) return  d - cad; // Posición de cadena hallada
  return -1;
}
Con la salvedad que en C/C++ se referencia al primer caracter por el índice 0 (en Delphi es 1), por lo que las funciones devolverán el valor de la posición disminuido en uno.

Saludos.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #3  
Antiguo 20-02-2013
KroSaver KroSaver is offline
Miembro
NULL
 
Registrado: feb 2013
Posts: 20
Poder: 0
KroSaver Va por buen camino
Si bueno pero si te fijas metes string.h y no ablemos de iostream porque esa libreria sique te agrega basura si compilas en Dev c++ una aplicacion de consola nada mas que tenga iostream y el peso del exe es exagerado pero a lo bestia.

El caso es que yo intento programar y aprender a programar asi porque asi me libero de codigo basura y las aplicaciones irian mas fluidas, rapidas y claro esta sin ensuciar la memoria que es algo a mi parecer que hoy en dia casi nadie intenta optimizar imaginad una aplicacion de dimensiones mucho mayores que necesitaria memoria y encima meteriamos basura.

He que con esto no intento influir mi opinion es eso solo mi opinion.

gracias y saludos
Responder Con Cita
  #4  
Antiguo 20-02-2013
Avatar de Al González
[Al González] Al González is offline
In .pas since 1991
 
Registrado: may 2003
Posts: 5.610
Poder: 32
Al González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en bruto
Cita:
Empezado por roman Ver Mensaje
Siendo Result una variable boolean, se inicializa a false automáticamente
Eso no es verdad, Román. Así sería si se tratara de un campo en una clase, pero, como seguramente recordarás, las variables que no usan contadores de referencias (aun siendo Result) no se inicializan en automático y pueden traer cualquier cosa de inicio.

Por cierto, a mí y a muchos otros nos alegra verte de nuevo en la palestra.

¡Un abrazo!
Responder Con Cita
  #5  
Antiguo 20-02-2013
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Bueno, no tenía (ni tengo ) delphi a mano. Pero mi aseveración la basé en el hecho de que el compilador no protesta ni advierte cuando una función de resultado entero no devuelve un valor, mientras que sí lo hace, por ejemplo, con funciones que devuelven cadenas de caracteres.

¿O es alrevés?

En fin, de todas maneras, admito que mi argumento no es muy cinetífico que digamos

// Saludos
Responder Con Cita
  #6  
Antiguo 21-02-2013
Avatar de Al González
[Al González] Al González is offline
In .pas since 1991
 
Registrado: may 2003
Posts: 5.610
Poder: 32
Al González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en bruto
Cita:
Empezado por roman Ver Mensaje
Bueno, no tenía (ni tengo ) delphi a mano. Pero mi aseveración la basé en el hecho de que el compilador no protesta ni advierte cuando una función de resultado entero no devuelve un valor, mientras que sí lo hace, por ejemplo, con funciones que devuelven cadenas de caracteres.

¿O es alrevés?
Sí, es al revés. Ya que las cadenas de caracteres sí usan contadores de referencias.

Aunque, tratándose de la variable Result, en lugar de inicializarse el String como cadena vacía, entra a la función como si fuera un parámetro:
Código Delphi [-]
Function F :String;
Begin
  ShowMessage (Result);
End;

procedure TForm1.Button1Click(Sender: TObject);
Var
  S :String;
begin
  S := 'Las bibliotecas de programación son de gran ayuda.';
  S := F;
end;

No se me ocurre una forma de ayudarte a solucionar lo que pasa actualmente con tu instalación de Delphi, pero si al menos de incentivo científico puede servir el código anterior...

Mucha suerte Román.
Responder Con Cita
  #7  
Antiguo 21-02-2013
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Cita:
Empezado por Al González Ver Mensaje
pero si al menos de incentivo científico puede servir el código anterior...
Ja, ja. Sí claro, pero sólo como algo meramente teórico, ¡vaya! un ejercicio mental, porque sin delphi no es mucho lo que puedo investigar

// Saludos
Responder Con Cita
  #8  
Antiguo 21-02-2013
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 38
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Cita:
Empezado por KroSaver Ver Mensaje
Si bueno pero si te fijas metes string.h y no ablemos de iostream porque esa libreria sique te agrega basura si compilas en Dev c++ una aplicacion de consola nada mas que tenga iostream y el peso del exe es exagerado pero a lo bestia.

El caso es que yo intento programar y aprender a programar asi porque asi me libero de codigo basura y las aplicaciones irian mas fluidas, rapidas y claro esta sin ensuciar la memoria que es algo a mi parecer que hoy en dia casi nadie intenta optimizar imaginad una aplicacion de dimensiones mucho mayores que necesitaria memoria y encima meteriamos basura.

He que con esto no intento influir mi opinion es eso solo mi opinion.

gracias y saludos
Hola KroSaver.

No estoy de acuerdo con que el utilizar bibliotecas sea incluir basura. Con dicos rígidos de 1TB y 4, 8, 16 Gb de RAM corriendo en varios núcleos a velocidades que meten miedo, hoy por hoy (y tenes razón) espacio y velocidad no son aspectos que preocupen a muchos. Ni comparar cuando en asm mezquinabamos bits de nuestros 64Kb para el Z-80, TSM9900, VIC-V20,... y funcionando de 1 a 3 Mhz!!!...

Mi experiencia dice que en el reemplazo por rutinas propia la ganancia de velocidad será: La mayoría de las veces ninguna, muy pocas veces será nula y en contados casos alguna. (No vamos a creer que los que diseñan las bibliotecas son flojos de entendederas... )

Si tus metas son la velocidad y tamaño, te recomendaría usar C, Pascal o Assembler (ningún código será mas compacto, veloz y eficiente que el generado por un buén programador de assembler).

Delphi y Builder C++ generarán ejecutables más voluminosos pero superan con creces esos detalles con una drástica disminución del tiempo de desarrollo, gran facilidad de mantenimiento, sencillez en la conexión con bases de datos, etc, etc.

Lo anterior dicho desde la vereda profesional con las exigencias y presiones que eso supone, pero como nos comentas que estás aprendiendo, es excelente que te intereses por intentar comprender, reemplazar e incluso mejorar las funciones de biblioteca.
Es la actitud que hace falta, no me cabe duda que llegarás ser un buén programador en menos tiempo de lo que supones.

Saludos.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....

Última edición por ecfisa fecha: 21-02-2013 a las 04:51:23.
Responder Con Cita
  #9  
Antiguo 21-02-2013
KroSaver KroSaver is offline
Miembro
NULL
 
Registrado: feb 2013
Posts: 20
Poder: 0
KroSaver Va por buen camino
Cita:
Empezado por ecfisa Ver Mensaje
Hola KroSaver.

No estoy de acuerdo con que el utilizar bibliotecas sea incluir basura. Con dicos rígidos de 1TB y 4, 8, 16 Gb de RAM corriendo en varios núcleos a velocidades que meten miedo, hoy por hoy (y tenes razón) espacio y velocidad no son aspectos que preocupen a muchos. Ni comparar cuando en asm mezquinabamos bits de nuestros 64Kb para el Z-80, TSM9900, VIC-V20,... y funcionando de 1 a 3 Mhz!!!...

Mi experiencia dice que en el reemplazo por rutinas propia la ganancia de velocidad será: La mayoría de las veces ninguna, muy pocas veces será nula y en contados casos alguna. (No vamos a creer que los que diseñan las bibliotecas son flojos de entendederas... )

Si tus metas son la velocidad y tamaño, te recomendaría usar C, Pascal o Assembler (ningún código será mas compacto, veloz y eficiente que el generado por un buén programador de assembler).

Delphi y Builder C++ generarán ejecutables más voluminosos pero superan con creces esos detalles con una drástica disminución del tiempo de desarrollo, gran facilidad de mantenimiento, sencillez en la conexión con bases de datos, etc, etc.

Lo anterior dicho desde la vereda profesional con las exigencias y presiones que eso supone, pero como nos comentas que estás aprendiendo, es excelente que te intereses por intentar comprender, reemplazar e incluso mejorar las funciones de biblioteca.
Es la actitud que hace falta, no me cabe duda que llegarás ser un buén programador en menos tiempo de lo que supones.

Saludos.
Estoy totalmente deacuerdo contigo pero es eso que cada uno pensamos de una manera, la verdad ahora mismo como tu as dicho preocupa poco el tamaño del ejecutable y su velocidad pero segun para que cosas.

Y bueno nada sigo con esa duda como ago para declarar una max_path char eso es lo unico que necesito porque lo que es la funcion de busqueda me la haria yo sin problema, es un problema bastante tonto pero nada no veo como declarar asi la char.

saludos y buena comunidad teneis la verdad!
Responder Con Cita
  #10  
Antiguo 21-02-2013
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Cita:
Empezado por ecfisa Ver Mensaje
[...] en el reemplazo por rutinas propia la ganancia de velocidad será: La mayoría de las veces ninguna, muy pocas veces será nula y en contados casos alguna. (No vamos a creer que los que diseñan las bibliotecas son flojos de entendederas... )
Yo añadiría que en muchos casos no sólo no hay ganancia sino al contrario, pérdida.

// Saludos
Responder Con Cita
  #11  
Antiguo 21-02-2013
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.142
Poder: 36
dec Tiene un aura espectaculardec Tiene un aura espectacular
Cita:
Empezado por roman Ver Mensaje
Me parece que esto es redundante. Siendo Result una variable boolean, se inicializa a false automáticamente

// Saludos
Conviene dejar las cosas claras.
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
problemas para crear una funcion ergonickolas Varios 18 08-09-2011 19:02:54
Problemas con la funcion system luiggixD C++ Builder 3 23-04-2008 15:37:37
Problemas para crear una funcion fartycl Varios 1 04-07-2006 19:47:50
Problemas con funcion RoundTo vick Varios 2 12-10-2005 02:12:35
Problemas con funcion bbjb Varios 10 27-09-2004 18:08:19


La franja horaria es GMT +2. Ahora son las 21:04:21.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi