Comment puis-je chercher une apstrophe dans un champ ?

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
zakk
Posts: 28
Joined: 2008-11-26 20:41:22

Comment puis-je chercher une apstrophe dans un champ ?

Post by zakk »

Bonjour,

J'écris un petit script pour corriger la casse dans les titres de films. Par exemple changer:
"Adieu L'ami" en "Adieu l'Ami".
Problème, j'ai pas le droit de faire value := StringReplace(value, ' L'a', ' l'A'); évidemment :ha: puisque le caractère est reservé pour encadrer la chaîne.

Voila c'est une question de débutant ;)
Merci d'avance,

Zakk
antp
Site Admin
Posts: 9665
Joined: 2002-05-30 10:13:07
Location: Brussels
Contact:

Post by antp »

Il faut la doubler :
' l''A'
zakk
Posts: 28
Joined: 2008-11-26 20:41:22

Post by zakk »

okidoc, merci!

Pour ceusse que ça intéresse, une fois qu'on a mis les premières lettres de chaque mot du titre en majuscule (par importation ou avec Updatscript), on peut fignoler avec ça:

Code: Select all

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

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

[Infos]
Authors=zakk
Title=Minusculisation
Description=qq mots de titre en minuscule
Site=
Language=?
Version=1.0
Requires=3.5.0
Comments=
License=
GetInfo=0

[Options]

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

program Minusculisation;
var
  value: string;
begin
  value := GetField(fieldOriginalTitle);
  value := StringReplace(value, ' À ', ' à ');
  value := StringReplace(value, ' And ', ' and ');
  value := StringReplace(value, ' Au ', ' au ');
  value := StringReplace(value, ' Aux ', ' aux ');
  value := StringReplace(value, ' Dans ', ' dans ');
  value := StringReplace(value, ' De ', ' de ');
  value := StringReplace(value, ' Des ', ' des ');
  value := StringReplace(value, ' Du ', ' du ');
  value := StringReplace(value, ' D"un ', ' d"un ');
  value := StringReplace(value, ' D"une ', ' d"une ');
  value := StringReplace(value, ' En ', ' en ');
  value := StringReplace(value, ' Et ', ' et ');
  value := StringReplace(value, ' If ', ' if ');
  value := StringReplace(value, ' In ', ' in ');
  value := StringReplace(value, ' La ', ' la ');
  value := StringReplace(value, ' Le ', ' le ');
  value := StringReplace(value, ' L"a', ' l"A');
  value := StringReplace(value, ' L"e', ' l"E');
  value := StringReplace(value, ' L"i', ' l"I');
  value := StringReplace(value, ' L"o', ' l"O');
  value := StringReplace(value, ' L"u', ' l"U');
  value := StringReplace(value, ' L"y', ' l"Y');
  value := StringReplace(value, ' Les ', ' les ');
  value := StringReplace(value, ' Ou ', ' ou ');
  value := StringReplace(value, ' Pour ', ' pour ');
  value := StringReplace(value, ' S"en ', ' s"en ');
  value := StringReplace(value, ' Ses ', ' ses ');
  value := StringReplace(value, ' Sur ', ' sur ');
  value := StringReplace(value, ' The ', ' the ');
  value := StringReplace(value, ' Un ', ' un ');
  value := StringReplace(value, ' Une ', ' une ');
  SetField(fieldOriginalTitle, value);

  value := GetField(fieldTranslatedTitle);
  value := StringReplace(value, ' À ', ' à ');
  value := StringReplace(value, ' And ', ' and ');
  value := StringReplace(value, ' Au ', ' au ');
  value := StringReplace(value, ' Aux ', ' aux ');
  value := StringReplace(value, ' Dans ', ' dans ');
  value := StringReplace(value, ' De ', ' de ');
  value := StringReplace(value, ' Des ', ' des ');
  value := StringReplace(value, ' Du ', ' du ');
  value := StringReplace(value, ' D"un ', ' d"un ');
  value := StringReplace(value, ' D"une ', ' d"une ');
  value := StringReplace(value, ' En ', ' en ');
  value := StringReplace(value, ' Et ', ' et ');
  value := StringReplace(value, ' If ', ' if ');
  value := StringReplace(value, ' In ', ' in ');
  value := StringReplace(value, ' La ', ' la ');
  value := StringReplace(value, ' Le ', ' le ');
  value := StringReplace(value, ' L"a', ' l"A');
  value := StringReplace(value, ' L"e', ' l"E');
  value := StringReplace(value, ' L"i', ' l"I');
  value := StringReplace(value, ' L"o', ' l"O');
  value := StringReplace(value, ' L"u', ' l"U');
  value := StringReplace(value, ' L"y', ' l"Y');
  value := StringReplace(value, ' Les ', ' les ');
  value := StringReplace(value, ' Ou ', ' ou ');
  value := StringReplace(value, ' Pour ', ' pour ');
  value := StringReplace(value, ' S"en ', ' s"en ');
  value := StringReplace(value, ' Ses ', ' ses ');
  value := StringReplace(value, ' Sur ', ' sur ');
  value := StringReplace(value, ' The ', ' the ');
  value := StringReplace(value, ' Un ', ' un ');
  value := StringReplace(value, ' Une ', ' une ');
  SetField(fieldTranslatedTitle, value);
end.
PS: y a sûrement quelques petits mots à ajouter, à voir au fur et à mesure.
zakk
Posts: 28
Joined: 2008-11-26 20:41:22

Post by zakk »

J'ai voulu reformatter mes titres avec mon script ci-dessus, mais ça ne marche plus avec les apostrophes genre:
value := StringReplace(value, ' L"u', ' l"U');

Le Résultat ne change plus. Est-ce lié à une modif récente ? Merci.
soulsnake
Posts: 756
Joined: 2011-03-14 15:42:20
Location: France

Post by soulsnake »

Normalement ça fonctionne j'ai testé.
Il n'y a pas eu de changement sur StringReplace.

Code: Select all

program NewScript;
var
  value: string;
begin
  value := GetField(fieldTranslatedTitle);
  value := StringReplace(value, 'L''u', 'l''U');
  SetField(fieldTranslatedTitle, value);
end.
Est-ce que tu as bien fait un 'SetField' sur le champ à modifier à la fin avec 'value' ?
Est-ce que tu as bien sélectionné tous les films avant le lancement du script ?
Est-ce que tu as bien autorisé la modification de ce champ avant le lancement du script ?
zakk
Posts: 28
Joined: 2008-11-26 20:41:22

Post by zakk »

En fait j'avais un guillemet à la place du double apostrophe. Maintenant c'est bon. Merci!
Post Reply