Oppure

Loading
21/10/16 11:12
xamm
Buongiorno a tutti,
ho un piccolo problema con il Pascal, linguaggio che non conosco.
Problema banale.
Sto utilizzando un software per splittare dei file pdf che riesce a fare quello che mi serve, ma nella rinomina dei file a fine procedura ho bisogno di una personalizzazione in Pascal.
Cerco di spiegarmi: ho un tag integer che dovrebbe essere di 12; il software dopo aver splittato mi rinomina i file in es: 123456.pdf.
Io avrei bisogno di una riga di codice Pascal che mi trasformi sempre il risultato 123456.pdf in 000000123456.pdf; comunque sempre integer di 12, tipo 000000000001.pdf
Ho provato così ma non funziona, nel senso che alla fine sempre 123456.pdf restituisce invece di 000000123456.pdf:

Var
p :integer;
Var
p1 :integer;
Begin
p :=pos(' ', Tag);
p1 :=000000000000
if p<0 then
Tag := LeftStr(Tag, p1 + p)
else
Tag:= trim (Tag);
end.

Scusate, lo so che è banale, ma mi sfugge l'istruzione giusta

Grazie e buona giornata a tutti.

Massimo
aaa
21/10/16 13:04
Goblin
Devi restituire una variabile di tipo String, che prende in entrata la variabile TAG riempe di zeri e butta fuori il nome del file che desideri.

Qualcosa del tipo:

Var sFileName: String;
      sTAG: String;

Function PadL(Text:String; c: char; nLen: integer): string;
{Ritorna una stringa lunga nLen riempita a sinistra dal carattere c }
var
  i: integer;
begin
  Result := '';
  nLen := nLen - length(Text);
  for i := 1 to nLen do
    Result := Result + c;
  result := result + Text;
end;

begin
  sTAG := IntToStr(Tag); // la variabile Tag 
  sFileName :=PADL(sTAG, '0', 12) + '.pdf';
end.


Ibis redibis non morieris in bello
21/10/16 14:00
xamm
Ciao goblin,
Grazie innanzitutto per la risposta.
In realtà l'estensione pdf gia ci pensa pdf content splitter a metterla e quindi il mio problema rimane solo sulla stringa. Domanda: devo quindi togliere dal tuo codice solo l'ultimo pezzo di codice dove gli passo l'estensione pdf ?
Grazie ancora
Massimo
aaa
21/10/16 14:15
Goblin
Si, se non ti serve l'estensione.
A rileggere il tuo codice direi che potrebbe diventare una cosa del tipo:

     
    Function PadL(Text:String; c: char; nLen: integer): string;
    {Ritorna una stringa lunga nLen riempita a sinistra dal carattere c }
    var
      i: integer;
    begin
      Result := '';
      nLen := nLen - length(Text);
      for i := 1 to nLen do
        Result := Result + c;
      result := result + Text;
    end;
     
    begin
      Tag :=PADL(Tag, '0', 12);
    end.
Ibis redibis non morieris in bello
24/10/16 7:56
xamm
Buongiorno Goblin,
il codice sembra funzionare ma alla fine tutti i file si chiamano 000000000000.pdf....

Buona giornata
aaa
24/10/16 8:14
xamm
Buongiorno Goblin,
il codice sembra funzionare ma alla fine tutti i file si chiamano 000000000000.pdf....

Buona giornata
aaa
24/10/16 15:35
Goblin
la variabile Tag qualcuno la deve inizializzare... il tuo è risultato è 000000000000.pdf proprio perchè la tua variabile Tag è uguale a 0.
G.
Ibis redibis non morieris in bello