Suppression ligne avec charactères indentique txt

Messages postés
6
Date d'inscription
mardi 14 août 2018
Dernière intervention
29 septembre 2018
- 28 sept. 2018 à 11:22 - Dernière réponse :
Messages postés
12267
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
18 novembre 2018
- 29 sept. 2018 à 19:49
Bonjour, (je suis debutant....)
j'ai fait un generateur de mot de passe en c#
Après la création d'un fichier text avec des données et des caractère Héxadecimal uniquement exemple :
019AA660B68D27
02E7A661EF4A07
E355FEDE6893BB

Je veux suprimer les lignes, enlever l'espace apres supression de mon fichier text (SerialNum.txt) contenant plusieurs caractère identique avec un bouton pour contrôler le fichier avant de l'ouvrir :
exemple :
019AA6AABBB27
02E77777EF4A07
E355FEDEEEEEBB

J'ai testé pas mal de codage et rien ne fonctionne. (Suppression de ligne, contrôle des caractère ect ...)
Merci de votre aide.
Afficher la suite 

Votre réponse

10 réponses

Messages postés
12267
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
18 novembre 2018
- 28 sept. 2018 à 13:13
0
Merci
Bonjour
Plusieurs caractères indentiques consécutifs ou dans tous le mot de passe?
Messages postés
6
Date d'inscription
mardi 14 août 2018
Dernière intervention
29 septembre 2018
- 28 sept. 2018 à 14:13
Bonjour, merci de prendre du temps pour moi.
j'ai du mal m'exprimer, je debute en c# et sur le forum aussi :
-c'est pour Plusieurs caractères indentiques dans une même ligne.
et contrôler tout les mots de passes qui auront été générés dans le fichier (SerialNum.txt, qui exeste déjà ... )
Il faut que je puisse contrôler le ficher txt qui aura été crée avant de l'ouvrir.
Eliminer les lignes :
0101010101010 (plusieurs 0 et 1 ligne à suprimer le vide qu'elle laisse)
...X ligne
001A1A1A1A1A (plusieurs 1 et A ligne à suprime le vide qu'elle laisser)
...X ligne
0C28DE68C6F0A (on conserve)
...X ligne
0C281E60C9F0A (on conserve )
...X ligne
EEEEAAAA45555 (plusieurs E, A et 5 ligne à suprimer le vide qu'elle laisse)
...X lignes
0E454EFFE75E0E (plusieurs E ligne à suprimer le vide qu'elle laisse)
Mon but et d'autoriser maximum de 3, 4, 5 chiffre ou lettre identique dans le mot de passe.
Le top serais que ca ma donne en meme temp le nombre total de ligne contenues dans le fichier TXT !
Mais ca, je verrais après...
Bonne après midi.
Commenter la réponse de Whismeril
Messages postés
12267
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
18 novembre 2018
- 28 sept. 2018 à 17:39
0
Merci
C'est parfaitement possible avec une regex.
Cependant, ça n'est pas optimisé.
Admettons que tu doives générer 100 mots de passe.
T'en fais donc 100.
Ensuite tu les relis tous et tu en vires 38.
Tu en refais 38.
Tu les relis tous et tu en vires 7.
etc...

Bref autant générer tout de suite un mot de au bon format.

Voila deux principes pour un mot de passe "sans doublon":
  • 1
    • Tu crées une collection de départ, avec chaque valeur possible (si tu autorises deux 'A' alors il sera présent deux fois dans la collection).
    • Tu "tires" aléatoirement un index.
    • Tu enlèves l'item situé à l'index en question et tu le mets dans la collection résultat.
    • Et ainsi de suite.
  • 2
    • Tu crées la même collection de départ.
    • Tu la mélanges
    • Tu prends les n premiers items de la collection mélangée.


Et le code du principe 2
        private string GenereMDP()
        {
            List<char> liste = new List<char> { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F' };//collection de départ

            IEnumerable<char> melange = liste.OrderBy(x => new Guid());//melange la liste en fonction d'un truc complétement aléatoire le GUID

            return string.Join("", melange.Take(12));//construit et retourne un string en joignant les 12 premiers éléments de melange avec "" comme séparateur.
        }
Messages postés
6
Date d'inscription
mardi 14 août 2018
Dernière intervention
29 septembre 2018
- 28 sept. 2018 à 18:21
Bonsoir,

Je ne peu pas faire de l'aléatoire. Sinon j'aurais fait ca :


private string lettermdp = "0123456789ABCDEF";
private void button15_Click(object sender, EventArgs e)
        {
            Random random = new Random();
            for (int index = 0; index < 14; ++index)
            {
                TextBox textBox = textBox3;
                string str = textBox.Text + (object)lettermdp[random.Next(0, lettermdp.Length)];
                textBox.Text = str;
            }
}


il faut que les mdp ce suivent dans l'ordre ....Et c'est pour cela que j'ai demandé de l'aide ... car je dois partir sur des fichier existant, généré avec une suite incrémentiel ...
Messages postés
12267
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
18 novembre 2018
- 28 sept. 2018 à 18:26
Pour poster un code merci de suivre ce qui est décrit là
https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code

Je ne comprends ce que
il faut que les mdp ce suivent dans l'ordre ....
veut dire.

Et le code, que tu montres, génère de aléatoire avec doublon, or tu ne veux pas de doublon, c'est pourquoi je t'ai expliqué 2 façons de faire sans doublon.
Messages postés
12267
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
18 novembre 2018
- 28 sept. 2018 à 18:36
Ha si tu modifies après que j'ai répondu, on va pas y arriver.

Donc dans ton premier message:
j'ai fait un generateur de mot de passe en c#
, le mot important c'est "J'".

Dans ta dernière modification,
car je dois partir sur des fichier existant


Si c'est toi qui a fait le générateur de mot de passe et qu'après tu fais un correcteur du résultat du générateur, ça manque de logique.

C'est pourquoi, je t'ai proposé une autre approche.

Maintenant si on te fournit un fichier et que tu dois le traiter:
  • 1 commence par ne pas dire "J'", ça évitera les méprises.
  • 2 ça ne t'empêche pas d'expliquer à ton demandeur que ça n'est pas optimisé, et que peut-être il serait plus efficient de modifier le générateur.
  • 3 si on reste dans l'idée de corriger le résultat du générateur, c'est pas un problème pour moi, cependant essaye de bien expliquer les choses, de ne pas être incohérent
Messages postés
6
Date d'inscription
mardi 14 août 2018
Dernière intervention
29 septembre 2018
- 28 sept. 2018 à 19:46
oui, j'ai fait le générateur. Je fais le tri manuellement une fois les fichiers creer et je ne veux plus le faire, c'est trop long. J'ai des fichiers existant et je ne vais pas les refaire ... Ca demande trop de temps.
Commenter la réponse de Whismeril
Messages postés
12267
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
18 novembre 2018
- 28 sept. 2018 à 23:47
0
Merci
<bock>Ca demande trop de temps.</block> à mon avis moins, que corriger à postériori, mais bon.

Avec une regex (voir ce tutoriel https://lgmorand.developpez.com/dotnet/regex/ ), tu peux au choix
  • capturer tous les codes avec doublon,
    \b.*(.).*(\1).*\n
    et les remplacer par rien, voir exemple ici
    http://regexstorm.net/tester?p=%5cb.*%28.%29.*%28%5c1%29.*%5cn&i=019AA660B68D27+%0d%0a02E7A661EF4A07+%0d%0aE355FEDE6893BB%0d%0a0123456789ABCD&r=
    onglet Context
  • capturer les codes valides (la regex est plus compliquée à faire) et réecrire le fichier texte avec.

Messages postés
6
Date d'inscription
mardi 14 août 2018
Dernière intervention
29 septembre 2018
- 29 sept. 2018 à 19:29
Merci, comme j'ai environ 48038396025285290 ligne a contôler, je prefère automatiser la chose ...
Messages postés
12267
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
18 novembre 2018
- 29 sept. 2018 à 19:49
Je dois vraiment mal m'exprimer.
Bien sûr que le contrôle automatisé est extrêmement plus rapide que de le faire manuellement. C'est pas ce que j'ai dit.

Ce que j'ai dit, c'est
  • développement d'un générateur
  • + la génération de codes, qui au final ne sont pas tous bons
  • + développement d'un contrôleur automatisé
  • + contrôle

est bien plus long, que de bien faire les choses dès le départ.
Commenter la réponse de Whismeril

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.