[REL] [ITA] Normalize Fields

If you made a script you can offer it to the others here, or ask help to improve it. You can also report here bugs & problems with existing scripts.
Post Reply
fulvio53s03
Posts: 764
Joined: 2007-04-28 05:46:43
Location: Italy

[REL] [ITA] Normalize Fields

Post by fulvio53s03 »

Very proud :wink: for my first script, I give it to you:
-----------------------------------------------------------------------------------

Code: Select all

(***************************************************

Ant Movie Catalog importation script
www.antp.be/software/moviecatalog/

[Infos]
Authors=Fulvio53s03
Title=NomalizzaCampi
Description=Elimina spazi iniziali / cambia iniziali delle parole
Language=IT
Version=1 del 29/06/2008
Requires=3.5
Comments=Lo script nécessita di ScorEpioNCommonScript.pas
License=
GetInfo=0

[Options]
Aggiornamento=1|1|0=Oui|1=Non
Caso Scelto=3|3|0=Tutto minuscolo|1=Tout maiusculo|2=Prima lettera maiuscula|3=Prima lettera di ogni parola maiuscula

***************************************************)

program NormalizzaCampi;
uses
  ScorEpioNCommonScript;

const
  VersionScript = '01 del 29/05/2008';
  NomScript = 'Normalizza Campi';

var
  Update, NewField, OldField, NewValue, Field, Abort, FirstExec : String;

//------------------------------------------------------------------------------
// RICHIESTA DI CONFERMA
//------------------------------------------------------------------------------
function confirm(leMessage : String): Boolean;
begin
  if (FirstExec <> 'N') then
  begin
    if (ShowConfirmation(leMessage) = True) then
    begin
      result := True;
    end else
      result := False;
  end else
    result := True;
end;

//------------------------------------------------------------------------------
// MET UN CHAMPS A LA CASSE VOULUE
//------------------------------------------------------------------------------
function casse(titre : String; option : Integer) : string;
begin
  if (option = 0) then
  begin
     titre := AnsiLowerCase(titre);
  end else if (option = 1) then
  begin
     titre := AnsiUpperCase(titre);
  end else if (option = 2) then
  begin
     titre := AnsiUpFirstLetter(titre);
  end else if (option = 3) then
  begin
     titre := AnsiMixedCase(titre,' -');
  end;
  result := titre;
end;

//------------------------------------------------------------------------------
// AGGIORNAMENTO DELLE INIZIALI DI TITOLI E NOMI
//------------------------------------------------------------------------------
procedure UpdateCasse();
begin
  if (confirm('State per sostituire le iniziali di titoli e attori e normalizzare i campi.') = True) then
  begin
  // Titre Original
     SetField(fieldOriginalTitle, casse(GetField(fieldOriginalTitle),GetOption('Caso Scelto')));
  // Titre Traduit
     SetField(fieldTranslatedTitle, casse(GetField(fieldTranslatedTitle),GetOption('Caso Scelto')));
  // Nom des Acteurs
     SetField(fieldActors, casse(GetField(fieldActors),GetOption('Caso Scelto')));
  end;
end;

//------------------------------------------------------------------------------
// NORMALIZZA TITOLI, DESCRIZIONI, ATTORI
//------------------------------------------------------------------------------
procedure replaceWord;
begin
    NewValue := Trim(getfield(fieldDescription));  //Descrizione
    SetField(fieldDescription, NewValue);
    NewValue := Trim(getfield(fieldActors));       //Interpreti
    SetField(fieldActors, NewValue);
    NewValue := Trim(getfield(fieldComments));     //Commenti
    SetField(fieldComments, NewValue);
    NewField := '';                                //elimina parentesi vuote negli attori
    OldField := '()';
    SetField(fieldActors, StringReplace(GetField(FieldActors), OldField, NewField));
    OldField := '( )';
    SetField(fieldActors, StringReplace(GetField(FieldActors), OldField, NewField));
end;

//------------------------------------------------------------------------------
// PROCEDURA PER ESEGUIRE LE NORMALIZZAZIONI
//------------------------------------------------------------------------------
procedure executeTask();
  begin
     UpdateCasse();
     replaceWord;
  end;

//------------------------------------------------------------------------------
// PROGRAMMA PRINCIPALE
//------------------------------------------------------------------------------

begin
  if CheckVersion(3,5,0) then
  begin
    if GetOption('Aggiornamento') = 0 then
    begin
       execMenuMAJ(VersionScript,NomScript);
       exit;
    end;
    if (Abort <> 'O') then
       begin
         executeTask();
         FirstExec := 'N';
       end 
    else
       begin
       exit;
    end;
  end else
    ShowMessage('Ce script requiert une version plus récente de Ant Movie Catalog (au moins la version 3.5.0)');
    exit;
------------------------------------------------------------------------------
The Script:
1) "normalize" fields Actors, Comments, and Description deleting unnecessary spaces at the beginning and at the ending of the fields (function TRIM),
2) deletes all "()" and "( )" in the Actors fields
3) changes the first letter of every word in titles and actors.

More fileds and normalizations can be easily added.
Notice me If you find errors.
:ha:
antp
Site Admin
Posts: 9651
Joined: 2002-05-30 10:13:07
Location: Brussels
Contact:

Post by antp »

I added "code" tags to keep the structure of the script ;)
Post Reply