2012-04-16 10 views
6

Estoy teniendo algunos problemas que definen una matriz de cadenas en const en la sección de código en la disposición de Inno, Tengo el siguiente:Inno Setup: cómo definir una matriz en const?

[Code] 

const 
    listvar: array [0..4] of string = 
    ('one', 'two', 'three', 'four', 'five'); 

Está diciendo que necesitaría un = donde el : es, pero entonces yo puedo no lo define como una matriz.

+3

AFAICT, de Inno Setup Pascal secuencias de comandos no admite matrices. (Al menos no hay nada en los documentos en línea ni uso de matrices en las muestras de código que pude encontrar). ¿Qué intenta exactamente hacer donde cree que necesita una matriz constante? –

+0

Supongo que tendrías que crear tu propia versión de InnoSetup y registrar este tipo por tu cuenta. @ Ken, creo que podrías mantener tu respuesta aquí. Comprueba esto ['thread'] (http://www.experts-exchange.com/Programming/Languages/Pascal/Delphi/Q_22738447.html). – TLama

+0

De acuerdo con este http://www.mirality.co.nz/inno/tips.php#arrays Inno Setup admite matrices, simplemente no puedo entender cómo definirlo como una const. – user477276

Respuesta

1

Hice una pequeña función de utilidad hace un tiempo. No le permitirá asignar una matriz en una constante, pero podría hacer el truco para una variable en un trazador de líneas. Esperando esta ayuda.

Usted puede usarlo de esta manera:

listvar := Split('one,two,three,four,five', ','); 
// ============================================================================ 
// Split() 
// ---------------------------------------------------------------------------- 
// Split a string into an array using passed delimeter. 
// ============================================================================ 
Function Split(Expression: String; Separator: String): TArrayOfString; 
Var 
    i: Integer; 
    tmpArray : TArrayOfString; 
    curString : String; 

Begin 
    i := 0; 
    curString := Expression; 

    Repeat 
     SetArrayLength(tmpArray, i+1); 
     If Pos(Separator,curString) > 0 Then Begin 
      tmpArray[i] := Copy(curString, 1, Pos(Separator, curString)-1); 
      curString := Copy(curString, Pos(Separator,curString) + Length(Separator), Length(curString)); 
      i := i + 1; 
     End Else Begin 
      tmpArray[i] := curString; 
      curString := ''; 
     End; 
    Until Length(curString)=0; 

    Result:= tmpArray; 
End; 
Cuestiones relacionadas