|
|||||||
| Free Pascal Le compilateur Pascal multiplateforme |
|
|
Publicité ' | |||||||||||||||||||||
|
|
|
Outils de la discussion |
|
|
#1 | ||||
|
Membre habitué
![]() Développeur informatique Inscription : janvier 2010 Messages : 163 ![]() |
Bonjour,
j'ai fait un petit programme pour supprimer les espaces dans une chaine un peu à la manière de =SUPPRESPACE(A1) d'un tableur. votre avis ? il y a plus simple ? c'est déjà implémenté dans le langage ? Code :
Code :
merci d'avance |
||||
|
00
|
|
|
#2 | ||
|
Membre Expert
![]() ![]() Roland ChastainInscription : décembre 2011 Messages : 694 ![]() |
Chouette, un exercice !
Voici la solution que j'ai trouvée : Code :
__________________
L'Art est long et le Temps est court. |
||
|
|
00
|
|
|
#3 |
|
Expert Confirmé Sénior
![]() ![]() Paul TOTHFreelance Inscription : novembre 2002 Messages : 4 433 ![]() |
à vu de nez tu as un bug si la chaîne ne se termine pas par un espace
__________________
Developpez.com: Mes articles, forum FlashPascal Entreprise: Execute SARL Produits : UPnP, RemoteOffice, FlashPascal Embarcadero : Ile de la Réunion, Dephi, C++Builder, RADPHP...TVA à 8,5% |
|
00
|
|
|
#4 | |
|
Membre habitué
![]() Développeur informatique Inscription : janvier 2010 Messages : 163 ![]() |
Bonjour,
merci de ton programme. J'envisageai de faire une fonction et tu as deja travaillé dans ce sens là. Citation:
à bientôt. |
|
|
00
|
|
|
#5 |
|
Membre habitué
![]() Développeur informatique Inscription : janvier 2010 Messages : 163 ![]() |
|
|
00
|
|
|
#6 |
|
Expert Confirmé Sénior
![]() ![]() Paul TOTHFreelance Inscription : novembre 2002 Messages : 4 433 ![]() |
FreePascal ne possède-t-il pas les fonction StringReplace et Trim de Delphi ?
__________________
Developpez.com: Mes articles, forum FlashPascal Entreprise: Execute SARL Produits : UPnP, RemoteOffice, FlashPascal Embarcadero : Ile de la Réunion, Dephi, C++Builder, RADPHP...TVA à 8,5% |
|
00
|
|
|
#7 | ||||
|
Membre Expert
![]() ![]() Roland ChastainInscription : décembre 2011 Messages : 694 ![]() |
J'ai pris mes rêves pour des réalités.
Voici une nouvelle version qui paraît mieux fonctionner : Code :
Code :
__________________
L'Art est long et le Temps est court. |
||||
|
|
00
|
|
|
#8 | |||
|
Membre éprouvé
![]() Inscription : janvier 2010 Messages : 223 ![]() |
Citation:
Code :
|
|||
|
|
10
|
|
|
#9 |
|
Membre Expert
![]() ![]() Roland ChastainInscription : décembre 2011 Messages : 694 ![]() |
@batyann811
J'aime bien ton programme, surtout le Break. C'est bien pensé. Par contre j'ai remarqué que les caractères accentués ne sont pas rendus correctement. Cela tient au mode de compilation, n'est-ce pas ?
__________________
L'Art est long et le Temps est court. |
|
|
00
|
|
|
#10 | |
|
Membre éprouvé
![]() Inscription : janvier 2010 Messages : 223 ![]() |
Citation:
La première est de faire concorder l'encodage du fichier source et de la console. La seconde est d'indiquer l'encodage dans le fichier source avec une directive {$CODEPAGE UTF8} pour que la RTL fasse la traduction automatiquement. Malheureusement, sous windows, ça ne fonctionne pas parce que la console et l'environnement graphique n'utilisent pas le même encodage. |
|
|
|
00
|
|
|
#11 | ||
|
Membre Expert
![]() ![]() Étudiant Inscription : juin 2009 Messages : 936 ![]() |
Ca me parait un peu lourd vos méthodes (récursivité, 2 while)...
Si j'ai bien compris, SupprEspace enlève les espaces en doubles, les espaces avant et après la chaine ? J'aurais vu un truc du genre : Code :
__________________
Articles : Création d'un système de chat en PascalProgrammes : Défi Pascal 2011 - Mon Tetris Défi Pascal 2010 - Mon système de chat Défi Delphi 2009 - Mon Sudoku SolverRetrouvez mes différents projets sur ma page personnelle. |
||
|
|
00
|
|
|
#12 |
|
Membre éprouvé
![]() Inscription : janvier 2010 Messages : 223 ![]() |
A l'origine j'avais pensé faire comme toi. Et puis je me suis dit que différencier le traitement des zones blanches du traitement des zones imprimables (les 2 while) devrait rendre la fonction plus rapide.
Je viens de tester. Et en fait non c'est même plus lent...
|
|
|
00
|
|
|
#13 |
|
Membre Expert
![]() ![]() Étudiant Inscription : juin 2009 Messages : 936 ![]() |
Merci pour le retour.
Il faut dire aussi que dans les zones "blanches", il n'y a qu'un test et une affectation, donc c'est assez rapide...
__________________
Articles : Création d'un système de chat en PascalProgrammes : Défi Pascal 2011 - Mon Tetris Défi Pascal 2010 - Mon système de chat Défi Delphi 2009 - Mon Sudoku SolverRetrouvez mes différents projets sur ma page personnelle. |
|
|
00
|
|
|
#14 | ||
|
Membre éprouvé
![]() Inscription : janvier 2010 Messages : 223 ![]() |
En trichant légèrement j'ai rendu ma méthode beaucoup plus rapide (environ 4 fois plus rapide que la méthode mick605 qui était déjà 15 à 20% plus rapide que ma pseudo méthode optimisée bidon) :
Code :
|
||
|
|
10
|
|
|
#15 | ||||
|
Expert Confirmé Sénior
![]() ![]() Paul TOTHFreelance Inscription : novembre 2002 Messages : 4 433 ![]() |
voici une autre idée
Code :
Code :
__________________
Developpez.com: Mes articles, forum FlashPascal Entreprise: Execute SARL Produits : UPnP, RemoteOffice, FlashPascal Embarcadero : Ile de la Réunion, Dephi, C++Builder, RADPHP...TVA à 8,5% |
||||
|
10
|
|
|
#16 | ||
|
Membre Expert
![]() ![]() Étudiant Inscription : juin 2009 Messages : 936 ![]() |
Alala, si vous trichez en plus !!
En bidouillant avec les allocations Code :
__________________
Articles : Création d'un système de chat en PascalProgrammes : Défi Pascal 2011 - Mon Tetris Défi Pascal 2010 - Mon système de chat Défi Delphi 2009 - Mon Sudoku SolverRetrouvez mes différents projets sur ma page personnelle. |
||
|
|
00
|
|
|
#17 | ||
|
Membre habitué
![]() Développeur informatique Inscription : janvier 2010 Messages : 163 ![]() |
merci de tous vos avis et coding
voila une nouvelle mouture ... peut-être à revoir .. Code :
|
||
|
00
|
|
|
#18 | ||
|
Invité de passage
![]() Inscription : juin 2008 Messages : 3 ![]() |
Pourquoi ne pas faire tout simplement un truc du genre :
Code :
|
||
|
|
00
|
|
|
#19 |
|
Membre Expert
![]() ![]() Roland ChastainInscription : décembre 2011 Messages : 694 ![]() |
1° parce que ça ne fonctionnerait pas
2° parce que, même si ça marchait, ça ne répondrait pas au problème, qui est de supprimer les espaces superflus partout dans la chaîne, et pas seulement aux extrémités.
__________________
L'Art est long et le Temps est court. |
|
|
00
|
Copyright © 2000-2013 - www.developpez.com