Delphi Texte Remplace vocabulaire style traduct°

Dragzz Messages postés 4 Date d'inscription mardi 17 septembre 2013 Statut Membre Dernière intervention 1 juillet 2014 - Modifié par Whismeril le 30/06/2014 à 17:08
Francky23012301 Messages postés 400 Date d'inscription samedi 6 août 2005 Statut Membre Dernière intervention 11 février 2016 - 9 juil. 2014 à 23:46
Bonjour,
Je suis actuellement entrain de créer un programme sous Delphi 7 qui remplace des mots(les noms, des verbes..) d'un texte. Malheureusement je ne suis que débutant, je cherche a faire un programme qui se transforme par exemple :

"We have used StringReplace in many places in our code without any real
problems.
But now we encountered a customer case, which we had not anticipated,
where the data we need to parse is way larger than anything we had
imagined..."
Après avoir cliqué sur le bouton remplacer --->
"We have used StringReplace in bagels places in our code without bagelsy real
problem
But now we burgered a customer case, which we had not burgered,
where the data we need to parse is bagelsy larger than anything we had
burgered..."
______________________________
Voici ce que j'ai pour l'instant où je ne suis pas vraiment satisfait sur le résultat que je cherche.
Je peux juste faire mot par mot, mais je voudrais que le texte, entier soit traité puis transformer/traduit en utilisant une liste de vocabulaires modifiable.
______________________________
unit Unit1;

interface

uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls,FonctionsChaine, Spin, ExtCtrls;

type
TForm1 = class(TForm)
ChaineDeBase: TEdit;
SousChaine: TEdit;
Resultat: TEdit;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
ButtonStrReplace: TButton;
EditreplacePar: TEdit;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure Button4Click(Sender: TObject);
procedure Button7Click(Sender: TObject);
procedure ButtonStrReplaceClick(Sender: TObject);

private
{ Déclarations privées }
public
{ Déclarations publiques }
end;

var
Form1: TForm1;

implementation

{$R *.DFM}

procedure TForm1.Button1Click(Sender: TObject);
begin
Resultat.Text:=Gauche(SousChaine.Text,ChaineDeBase.Text);
end;

procedure TForm1.Button7Click(Sender: TObject);
begin
Resultat.Text:=GaucheDuDernier(SousChaine.Text,ChaineDeBase.Text);
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
Resultat.Text:=Droite(SousChaine.Text,ChaineDeBase.Text);
end;

procedure TForm1.Button3Click(Sender: TObject);
begin
Resultat.Text:=DroiteDroite(SousChaine.Text,ChaineDeBase.Text);
end;

procedure TForm1.Button4Click(Sender: TObject);
begin
Resultat.Text:=IntToStr(NbSousChaine(SousChaine.Text,ChaineDeBase.Text));
end;

procedure TForm1.ButtonStrReplaceClick(Sender: TObject);
begin
Resultat.Text:=StrReplace(SousChaine.Text,EditreplacePar.Text, ChaineDeBase.Text)
end;

end.
__________
Je cherche donc à faire une sorte de traduction personnalisé, avoir un texte, cliquer, puis remplacer par exemple tout les noms ou verbes en er (ainsi gérer les accents en un mot quelconque.(ex: verbe - tirer-lancer-changer en le mot 'bisous')

D'après certaine recherche j'ai réussi à avoir une idée des fonctions qui me manque.
__________
var
result : string;

begin
// Concatenate using the +
result := 'Hello '+'cruel '+'World';
ShowMessage(result);

// Concatenate using the Concat function
result := Concat('Hello ','cruel ','World');
ShowMessage(result);
end;
______________________
var
before, after : string;

begin
// Try to replace all occurrences of a or A to THE
before := 'This is a way to live A big life';

after := StringReplace(before, ' a ', ' THE ',
[rfReplaceAll, rfIgnoreCase]);
ShowMessage('Before = '+before);
ShowMessage('After = '+after);
end;
_________________

function Str_Replace(Str: string; DChar, FChar: Char): string;

var
indx: integer; // L'index de la boucle for
tempStr: string; // Variable temporaire
begin
for indx := 1 to length(Str) do
begin
if(Str[indx] = DChar) then tempStr := tempStr + FChar
else tempStr := tempStr + Str[indx];
end;

Result := tempStr;
end;

_______________
je n'arrive pas du tout à les insérer ou s'ils sont au finalement utilisable

Si vous pouvez donc m'aider en écrivant ce qu'il faut pour que je continue mon programme, comme je suis encore débutant, je ne comprendrais pas les codes compliqués ou écris à moitié!
C'est l'une des raisons pour laquelle je viens ici demander de l'aide, cela me prend la tête depuis quelque jours à essayer pleins de nouvelles idées farfelus tirer inspirer par internet.

Merci de votre temps,
Cordialement.

6 réponses

Whismeril Messages postés 19025 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 19 avril 2024 656
30 juin 2014 à 17:08
Bonjour, message modifié par l'ajout des balises de code.
Voir ici comment utiliser la coloration syntaxique.
0
Dragzz Messages postés 4 Date d'inscription mardi 17 septembre 2013 Statut Membre Dernière intervention 1 juillet 2014
30 juin 2014 à 17:34
Après encore quelques petites recherches, je pense qu'une boucle serait pour le mieux. En utilisant la boucle pour analyser chaque mot et définir qu'entre deux espaces, le mot sera considérer comme une chaîne de caractère, ne serait ce pas plus pratique des boucles pour remplacer les mots voulus?? Je vous dis ça en sachant pas comment le rédiger ^_^'.
0
Whismeril Messages postés 19025 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 19 avril 2024 656
30 juin 2014 à 23:37
Bonsoir, je ne connais pas Delphi, mais en C# j'aurais utilisé une Regex, une recherche rapide sur mon moteur de recherche "favori" m'a permis de voir qu'il existe des librairies compatibles avec Delphi 7.
Par contre je ne sais pas si elles sont libres ou gratuites et les sites que j'ai trouvé sont en anglais.
http://regexpstudio.com

http://regexpstudio.com/TRegExpr/Help/article_bird_eye_view.html

http://www.regexguru.com/2008/08/tperlregex-for-delphi-2009/
0
Dragzz Messages postés 4 Date d'inscription mardi 17 septembre 2013 Statut Membre Dernière intervention 1 juillet 2014
1 juil. 2014 à 17:42
Bonjour, merci de ton aide! Mais malheureusement j'ai essayer d'instaurer la fonction mais ça n'a pas marcher...je suis vraiment bloquée sans savoir quoi faire
0
cs_yanb Messages postés 271 Date d'inscription lundi 27 octobre 2003 Statut Membre Dernière intervention 7 juillet 2022 14
4 juil. 2014 à 12:43
Salut,

toutes les fonctions "Phidels" que tu as sité dans ton premier post et les TRegExpr de Whismeril sont fonctionnelles et utilisables et correspondent à ta demande...
il te suffit simplement de les utiliser et de comprendre les exemples qui sont fournis avec.
Pour ce qui est des fonctions basique pour faire ce genre de chose et si tu veux developper tes propres fonctions,
il y a : Pos, PosEx, StringReplace, ReplaceText, FindText, MatchesMask, Copy, Move, SetLength, Shr, Inc, PChar, PByte, ...
il y a des fonctions qui sont relativement lentes et gourmandes en mémoire "StringReplace" par exemple,
mais on peut les remplacer par des fonctions perso optimisée à nos besoins.
Ensuite l'aide delphi F1 va te donner les informations necessaires sur les termes que je viens de t'indiquer.
Sur le site tu trouveras également pas mal d'exemple de source et de snippets sur les remplacements de caractère etc...
@+
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_cantador Messages postés 4720 Date d'inscription dimanche 26 février 2006 Statut Modérateur Dernière intervention 31 juillet 2021 13
7 juil. 2014 à 16:58
bonsoir Dragzz,

si j'ai bien compris, tu souhaites faire un traducteur avec
une option du choix du mot traduit :

bref, comme traduction de google

mouais..
0
Francky23012301 Messages postés 400 Date d'inscription samedi 6 août 2005 Statut Membre Dernière intervention 11 février 2016 1
9 juil. 2014 à 23:46
Salut,

On peut aussi utiliser un parseur pour ce genre de choses.
0
Rejoignez-nous