Dragzz
Messages postés4Date d'inscriptionmardi 17 septembre 2013StatutMembreDernière intervention 1 juillet 2014
-
Modifié par Whismeril le 30/06/2014 à 17:08
Francky23012301
Messages postés400Date d'inscriptionsamedi 6 août 2005StatutMembreDernière intervention11 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.
Dragzz
Messages postés4Date d'inscriptionmardi 17 septembre 2013StatutMembreDerniè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 ^_^'.
Whismeril
Messages postés19028Date d'inscriptionmardi 11 mars 2003StatutNon membreDernière intervention24 avril 2024656 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
Dragzz
Messages postés4Date d'inscriptionmardi 17 septembre 2013StatutMembreDerniè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
cs_yanb
Messages postés271Date d'inscriptionlundi 27 octobre 2003StatutMembreDernière intervention 7 juillet 202214 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...
@+
Vous n’avez pas trouvé la réponse que vous recherchez ?