Page 34 of 39

Posted: 2013-12-18 00:10:56
by Raoul_Volfoni
Salut soulsnake,

Juste une petite question concernant l'éditeur de script d'AMC.
As tu moyen de l'améliorer ?

Si oui, j'ai une requête de grosse feignasse concernant les points d'arrêt.
J'aimerais pouvoir sélectionner un bloc de lignes et appliquer un point d'arrêt pour toutes ces lignes. Genre, je clique sur la ligne 100 et en faisant Clic + Maj ou Ctrl ou Alt sur la ligne 120, ça met des points d'arrêt partout entre les lignes 100 et 120.

Sinon toujours pour le module d'édition et toujours en mode grosse feignasse, serait il possible d'inclure un "remplacer par" pour éviter de passer par un éditeur de texte externe.

Tant que j'y suis, j'abuse ... :p ... le catalogue profite d'un backup automatique. Quand on a choisi de stocker les images dans le catalogue et qu'on a un pépin, on peut toujours espérer retrouver tous ses petits, mais avec l'arrivée des extras et l'augmentation potentiel du nombre d'images que le soft a à gérer, j'ai pris le parti de stocker mes images dans un dossier Images associé au catalogue. Hors, ce dossier n'est jamais backupé automatiquement comme pour le catalogue. Crois tu judicieux de pouvoir proposer un backup de ce dossier ? Sachant que celui ci peut être très volumineux.

Posted: 2013-12-18 13:36:47
by antp
Quel est l'intérêt de mettre plusieurs lignes à la suite en point d'arrêt ? Une fois le programme arrêté sur la première, tu peux faire du pas-à-pas sur les suivantes...

Posted: 2013-12-18 14:07:21
by Raoul_Volfoni
antp wrote:Quel est l'intérêt de mettre plusieurs lignes à la suite en point d'arrêt ? Une fois le programme arrêté sur la première, tu peux faire du pas-à-pas sur les suivantes...
Salut Antoine,

Je suis d'accord, j'use parfois de la touche F8... mais lorsque ton script passe par des fonctions ou procédure interne, tu dois alors te taper toute la fonction ou la procédure avant d'arriver à la ligne suivante. Et c'est encore plus chiant de devoir regarder quelle ligne je vais sélectionner ou pas, que de sélectionner un bloc ... ou alors c'est moi qui suis moins patient qu'avant ... :p
Bref ... je m'y prends peut être très mal et si ça semble une hérésie pour un développeur ... faisons comme si je n'avais rien dit à propos des points d'arrêt.

Posted: 2013-12-18 16:57:10
by antp
Ah oui il rentre d'office dans les fonctions, j'avais oublié ça :D
En Delphi (et autres environnements de développement) y a deux fonctions distinctes : passer à la ligne suivante ou entrer dans la fonction ;)

Posted: 2013-12-18 18:11:57
by soulsnake
Salut,

Je regarderai ça mais se sera surement pas implémenté avant la version 4.2.1 ;).

Soulsnake.

Posted: 2013-12-18 18:25:00
by baffab
En delphi il me semble que le F8 passer à l'instruction suivante et le F7 entre dans le code (le F8 ici). A implémenter si possible, je serais également preneur.
Sinon Raoul le F4 marche : il faut positionner le curseur là où on veut s'arrêter et faire F4, c'est une sorte de point d'arrêt sans forcément les créer, ça peut être une alternative. Du coup ce que tu veux faire correspond à faire flèche bas puis F4 par exemple :D
soulsnake wrote:Salut,

Je regarderai ça mais se sera surement pas implémenté avant la version 4.2.1 ;).

Soulsnake.
Si tu dois revoir l'éditeur pour tout ce qui est pas à pas j'aurais quelques suggestions...

Posted: 2013-12-18 19:02:45
by Raoul_Volfoni
soulsnake wrote:Je regarderai ça mais se sera surement pas implémenté avant la version 4.2.1 ;).
Salut soulsnake,
Merci ... vivement demain donc !! ... :p ... :hihi:
baffab wrote:Sinon Raoul le F4 marche : il faut positionner le curseur là où on veut s'arrêter et faire F4, c'est une sorte de point d'arrêt sans forcément les créer, ça peut être une alternative. Du coup ce que tu veux faire correspond à faire flèche bas puis F4 par exemple :D
Salut baffab,
J'ai découvert ça hier ( 7 ans que je suis passé à côté ... :ha: ) en essayant de ne me pas me ridiculiser avant de poster ma requête, au cas où il y aurait déjà une solution existante dans l'éditeur.
Mais bon, ça marche pour un problème facile à résoudre sur un script qui ne me demande qu'un seul passage pour comprendre pourquoi ça foire. Mais je t’avouerais que je fais souvent plusieurs passages avant de comprendre, donc la solution des points d'arrêt établis reste ma préférée. :cool:

Bonnes fêtes de fin d'année les gars.

Posted: 2013-12-29 19:46:20
by J
hello soulsnake,

while testing with my script I noticed that deleting extras is an somewhow instant execution for the external stored pictures and they are gone even when I do not save the catalog afterwards.
Opening the catalog again, the pics have been deletet from the catalog and physically from the hd, but not the extra information itself (actor name, role etc. is still present).

If the extra pictures a stored in catalog, they are still present. Thats what I expected, an untouched catalog when I do not save, so I was kind of surprised about the missing pictures.

Can you change this behaviour for external stored pictures to 'do not show them but not delete them from catalog/hd' until catalog saving as well?

- and yes, testing with a production catalog is not the most clever idea anyway :hihi: - good to have a working batch script for dl again ;)

thanks
J.


- Forget to mention a second point (with picture external storage):
Adding extras pictures and not saving the catalog afterwards will release some zombie pictures (present on hd but not used) in the picture directory.

Posted: 2013-12-29 22:57:03
by antp
I guess this problem also exists with catalog pictures, not only with extras.
Deleting only when saving would solve that case, however replaced pictures would have to be handled differently...
Also, the problem if added pictures: if you add pictures but do not save the catalog, you'll still have the new picture on the disk.
Not so simple to handle all that ;)

Posted: 2013-12-29 23:57:26
by soulsnake
Hi,

Yes, I know this, but this behavior is "normal" even if it is not the expected behavior.
This behavior is because pictures are saved on the hard disk and not in the catalog itself so when a picture is deleted, it is deleted forever (catalog saved or not).
When you add a picture, it is added on the hard drive too, so if you do not save the catalog, picture is linked to nothing (it is a "zombie" picture).

@antp: If I delete picture only when I save the catalog, I can not name new pictures or rename pictures correctly because deleted pictures are still on the hard drive.

@J: As antp said, this is not so simple to handle all that to have the expected behavior.

Note: When you manage (add/delete/modify) the pictures of a movie in scripting, all changes are done in memory until the changes are validated for the movie (OK in result window). So if you cancel changes, nothing is deleted or added. But I can not apply the same behavior for the whole catalog for technical reasons.

Soulsnake.

Posted: 2014-02-03 19:12:17
by Raoul_Volfoni
Salut soulsnake,

Je rencontre un problème avec la fonction HTMLDecode qui, malgré sa mise à jour dans la version 4.2.0 [BETA] du 13/10/13, retourne des valeurs non interprétées. J'ai constaté cela sur le caractère &# 8217;
Ex :

Code: Select all

program NewScript;
var
Value :string;
begin
Value := 'L&# 8217;univers de la mythique saga est ici &# 233;tendu et l&# 8217;ambiance est moins sombre que dans les volets pr&# 233;c&# 233;dents';
HTMLDecode(Value);
ShowMemo(Value);
end.
(Dans Value il faut bien entendu retirer les espaces entre &# et le chiffre)

En poussant les recherches, je me suis rendu compte que le même caractère encodé en mode texte (& rsquo;) est bien décodé par la fonction HTMLDecode.

j'ai donc fait un petit script pour récupérer tous les caractères spéciaux de cette page et voir ce qu'un HTMLDecode donne sur un même caractère encodé en texte ou bien numériquement.

Code: Select all

program NewScript;

const
CR = #13#10;
Tab = #9;
Esp = '    ';
Sep = '|';

uses
StringUtils1;

var
URL, Line, Value, Value2  : string;

//------Fonction Extract_Infos--------------------------------------------------
function Extract_Infos(Info : string): string;

var
Temp, Txt, Num, Car, Des, Txt2, Num2 : string;

begin
  Delete(Info, 1, Pos('</tr>', Info));
  While Pos('</tr>', Info) > 0 do
  begin
    Car := TextBetween(Info, '<tr><td>', '</td>');  // caractère
    Txt := TextBetween(Info, '<td>&', '</td>');  // code texte
    if length('&'+Txt) >= 8 then
    Txt2 := Txt+Tab
    else
    Txt2 := Txt+Tab+Tab;
    Num := TextBetween(Info, '<td>&#', '</td>'); // code numérique
    if length('&#'+Num) >= 8 then
    Num2 := Num+Tab
    else
    Num2 := Num+Tab+Tab;
    Delete(Info, 1, Pos('<td>&#', Info));
    Des := UTF8Decode(TextBetween(Info, '<td>', '</td>')); // description du caractère
    HTMLRemoveTags(Des);
    if Des <> ' ' then
    Des := '{ '+Des+' }';
    Temp := Temp+'( '+Car+' )'+Tab+'&'+Txt2+'='+Tab+'[ '+'&'+Txt+' ]'+Tab+Sep+Tab+'&#'+Num2+'='+Tab+'[ '+'&#'+Num+' ]'+Tab+Des+CR;
    Delete(Info, 1, Pos('</tr>', Info));
  end;
  result := Temp;
end;

//------Programme Principal-----------------------------------------------------
begin
  URL := 'http://alexandre.alapetite.fr/doc-alex/alx_special.html';
  Line := GetPage(URL);

  Value2 := TextBetween(Line, UTF8Encode('<h2 id="generaux">Caractères généraux</h2>'), '</table>');
  Value := '[ Caractères généraux ]'+CR+CR+Extract_Infos(Value2);
  Value2 := TextBetween(Line, '<h2 id="monnaies">Monnaies</h2>', '</table>');
  Value := Value+CR+'[ Monnaies ]'+CR+CR+Extract_Infos(Value2);
  Value2 := TextBetween(Line, UTF8Encode('<h2 id="accents">Caractères alphabétiques accentués et spéciaux</h2>'), '</table>');
  Value := Value+CR+'[ Caractères alphabétiques accentués et spéciaux ]'+CR+CR+Extract_Infos(Value2);
  Value2 := TextBetween(Line, '<h2 id="grec">Alphabet Grec</h2>', '</table>');
  Value := Value+CR+'[ Alphabet Grec ]'+CR+CR+Extract_Infos(Value2);
  Value2 := TextBetween(Line, ('<h2 id="sciences">Sciences</h2>'), '</table>');
  Value := Value+CR+'[ Sciences ]'+CR+CR+Extract_Infos(Value2);
  Value2 := TextBetween(Line, UTF8Encode('<caption>Reconnus sous <abbr>IE</abbr>6.0+ avec une police unicode</caption>'), '</table>');
  Value := Value+CR+'[ Divers caractères reconnus sous IE6.0+ avec une police unicode ]'+CR+CR+Extract_Infos(Value2);
  Value2 := TextBetween(Line, UTF8Encode('<caption>Reconnus sous <abbr>IE</abbr>6.1+ avec une police unicode</caption>'), '</table>');
  Value := Value+CR+'[ Divers caractères reconnus sous IE6.1+ avec une police unicode ]'+CR+CR+Extract_Infos(Value2);
  //ShowMemo(Value);
  HTMLDecode(Value);
  ShowMemo(Value);
end.
Beaucoup de caractères ne sont pas décodés en mode numérique alors qu'ils le sont en mode texte et certains caractères n'ont pas le même décodage selon le mode dans lesquels ils apparaissent.
Ex :
& hellip; = &# 8230; = ...

Mais alors que :
HTMLDecode sur & hellip; renvoie bien ...
HTMLDecode sur &# 8230; renvoie &

C'est normal ou y a t'il moyen de faire quelque chose ?

Posted: 2014-02-04 12:55:34
by antp
C'est parce que ce sont des caractères unicode, ce qu'AMC ne gère pas. En numérique il est prévu pour les caractères jusqu'à 255.
On pourrait rajouter des cas particuliers pour les symboles courants comme ceux-là.
Ou faire le décodage en unicode et le reconvertir en ANSI ensuite.

Posted: 2014-02-05 16:49:19
by Raoul_Volfoni
@ antp
antp wrote:C'est parce que ce sont des caractères unicode, ce qu'AMC ne gère pas. En numérique il est prévu pour les caractères jusqu'à 255.
Salut antp,

Merci pour cette réponse. J'avais relu ce topic avant de poster, mais je n'avais pas capté qu'il y avait la limitation des 256 valeurs sur le codage numérique.
Si soulsnake n'a pas le temps de rajouter ces cas particuliers, il serait alors préférable qu'au delà de &# 255; la fonction HTMLDecode renvoie une valeur vide plutôt qu'un caractère non décodé ou n'ayant rien à voir.



@ soulsnake


Salut soulsnake,

Encore une requête ... :p
J'ai cherché sur le forum , mais je n'ai rien trouvé à ce propos.
On peut déplacer et redimensionner les champs personnalisés à loisir ... c'est cool ... :cool: ... mais par contre, c'est l'arrachage de cheveux pour aligner correctement les champs aux petits oignons. Pour l'instant la seule manière de m'en sortir pour que la partie champs personnalisés ne ressemble pas à un truc trop immonde niveau agencement des champs, c'est d'éditer à la main le fichier XML de la sauvegarde ... pas très pratique :/.
Serait il possible d'envisager une option permettant de choisir entre un mode libre et une sorte de placement automatique aimanté sur grille ?
Ou alors au moins, lorsqu'on est en mode déplacement, afficher les coordonnées x y, du champ sélectionné. Et permettre un déplacement plus précis (au pixel) en utilisant les touches directionnelles du clavier sur le champ sélectionné ?

Posted: 2014-02-05 19:29:57
by soulsnake
Salut,

Pour le problème de conversion des caractères unicodes dont le code numérique est supérieur à 255 (et qui ne rentre donc pas dans le jeu de caractères Windows-1252), je vais ajouter une nouvelle correspondance vers un code numérique inférieur à 256 si c'est possible, sinon le caractère sera supprimé.

Pour le déplacement "assisté" :p des champs personnalisés, je vais voir ce que je pourrai faire dans une future version (4.2.1).

Edit: J'ai effectué les modifications concernant le problème de conversion des caractères unicodes dont le code numérique est supérieur à 255 pour la version finale d'AMC 4.2.0.
Le texte ci-dessous s'affichera maintenant sans problème.
program NewScript;
var
Value :string;
begin
Value := 'L&# 8217;univers de la mythique saga est ici &# 233;tendu et l&# 8217;ambiance est moins sombre que dans les volets pr&# 233;c& #233;dents&# 8230; &# 8251;';
HTMLDecode(Value);
ShowMemo(Value);
end.
Seul le caractère "&# 8251;" sera supprimé car il n'a pas de correspondance dans le jeu de caractères Windows-1252.

Soulsnake.

Posted: 2014-03-15 20:36:04
by thorby
Bonjour,
j'ai juste un petit problème avec Extra fields dans variables de Text editor du Designer. Aucun de ses champs ne s'affiche pour l'impression.
Sinon, vraiment génial la version 4.2.0.

Posted: 2014-03-17 11:56:21
by soulsnake
Salut thorby,

Pour utiliser un ou plusieurs extras pour l'impression, il faut d'abord renseigner le champ tag de l'extra puis utiliser ce tag dans le designer à la place du mot Tag après le #.
Par exemple, si tu renseigne la tag "affiche1" pour un extra, dans le designer tu pourras afficher les champs et l'image de cet extra avec les valeurs suivantes : [ETitle#affiche1], [ECategory#affiche1], ..., [EPicture#affiche1]

Soulsnake.

Posted: 2014-03-17 17:34:00
by thorby
Bonjour,
merci Soulsnake... et l'explication était même incorporée, ce logiciel étant merveilleusement bien construit... Mais j'ai toujours un warning (undefined symbol "EPICTURE#TH). Les autres champs fonctionnent sans problème.
J'ai essayé de mettre l'image dans le catalogue, dans un fichier ou de la lier mais sans trouver ce que je fais de travers.
Thorby

Posted: 2014-03-17 21:06:31
by Raoul_Volfoni
Salut thorby,
thorby wrote:... j'ai toujours un warning (undefined symbol "EPICTURE#TH). Les autres champs fonctionnent sans problème.
J'ai essayé de mettre l'image dans le catalogue, dans un fichier ou de la lier mais sans trouver ce que je fais de travers ...
J'ai essayé avec la dernière version BETA 4.2.0 du (03/11/13) et ça marche de mon côté. j'ai essayé de reproduire le message d'erreur que tu obtiens et je n'ai pas réussi ... je ne sais pas comment tu fais ... :p
Peut être pourrais tu nous faire parvenir un fichier *.amc avec juste une fiche et son (ses) extra(s) et également le template d'impression que tu utilises (le fichier *.frf), ça permettrait de voir où ça coince plus rapidement.

Posted: 2014-03-17 22:36:32
by thorby
Bonjour,
template et catalogue
Merci

Posted: 2014-03-17 23:47:42
by Raoul_Volfoni
J'ai trouvé ... ;)

En fait ton template n'est pas bon, tu utilises l'outil "insert rectangle object" pour afficher une image, alors qu'il faut utiliser l'outil "insert picture" , 3éme objet dans la barre des objets à gauche (l'icone en forme d'image).
Et tu utilises "insert rectangle object" pour afficher ton texte (ETitle#capt)

Je t'ai refais le template Etiquette3x6test_thorby.frf