Ver Mensaje Individual
  #9  
Antiguo 21-01-2010
cocute cocute is offline
Miembro
 
Registrado: nov 2008
Posts: 403
Reputación: 16
cocute Va por buen camino
Ya que has insistido al final me he animado a hacerlo, pero he preferido no aprovechar los datos descompuestos de GetFileVersion, ya que tengo que usar una funcion para descomponer un valor prefiero sacar el valor de version con la función que he puesto mas arriba y luego descomponerlos los dos valores, ya que asi creo que es menos codigo .
Os pongo el código que he usado por si algún dia alguno la utilizais, creo que esta bién, tengo que probarlo mejor a ver:

Función para descomponer una cadena con 4 valores separados por 3 puntos:
Código Delphi [-]
function Descompone(cadena: string; var cadena1, cadena2,cadena3,cadena4: string):string;
var i, j:integer;
begin
j:=1;
i:=pos('.', cadena);
cadena1:=copy(cadena, j, i-j);
j:=i+1;
i:=PosEx('.', cadena, j);
cadena2:=copy(cadena, j, i-j);
j:=i+1;
i:=PosEx('.', cadena, j);
cadena3:=copy(cadena, j, i-j);
j:=i+1;
i:=length(cadena);
cadena4:=copy(cadena, j, i);
end;

Función para comprobar que versión es mayor:
(devuelve 0 si son iguales, 1 si version1 es mayor y 2 si version2 es mayor)
Código Delphi [-]
function cualesmayor(version1,version2:string):integer;
var cad1, cad2, cad3,cad4,cod1,cod2,cod3,cod4:string;
m:Integer;
begin
Descompone(version1, cad1,cad2,cad3,cad4);
Descompone(version2, cod1,cod2,cod3,cod4);
m:=2;
if cad1>cod1 then m:=1;
 if cad1=cod1 then
  begin
    if cad2>cod2 then m:=1;
    if cad2=cod2 then
      begin
       if cad3>cod3 then m:=1;
       if cad3=cod3 then
         begin
          if cad4>cod4 then m:=1;
          if cad4=cod4 then
           begin
            m:=0;
           end;
         end;
      end;
  end;
 Result:=m;
end;

Para usarlo partiendo de dos edits y un botón:
Código Delphi [-]
procedure TForm1.Button1Click(Sender: TObject);
var t:Integer;
begin
t:=cualesmayor(Edit1.Text,Edit2.text);
if t=0 then ShowMessage('son iguales');
if t=1 then ShowMessage('Edit1 es mayor');
if t=2 then ShowMessage('Edit2 es mayor');
end;

Última edición por cocute fecha: 21-01-2010 a las 12:22:22.
Responder Con Cita