Page 1 of 1

Comment puis-je chercher une apstrophe dans un champ ?

Posted: 2011-02-08 12:26:11
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

Posted: 2011-02-08 13:12:05
by antp
Il faut la doubler :
' l''A'

Posted: 2011-02-08 13:38:07
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.

Posted: 2011-12-11 12:06:13
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.

Posted: 2011-12-11 12:49:53
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 ?

Posted: 2011-12-11 13:16:03
by zakk
En fait j'avais un guillemet à la place du double apostrophe. Maintenant c'est bon. Merci!