Séparer une chaîne de caractère avec 2 caractères [Résolu]

Messages postés
15
Date d'inscription
lundi 21 novembre 2016
Dernière intervention
16 avril 2018
- 3 mai 2017 à 12:17 - Dernière réponse :
Messages postés
12262
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
17 novembre 2018
- 3 mai 2017 à 16:23
Bonjour j'ai un fichier texte comme ceci:


BRIDGE.V2014R6I1.SOFT
icem.V4R12I2.SOFT
mygale.V4R1I1.SOFT,patch01_MAJ_APL.exe
photoshop.V2014R10I1.SOFT
rhino.V5R0I1.SOFT,patch01_Update_Files.exe
TSFX.V2R3I2.SOFT,patch01_corrections.exe,patch02_clock.exe,patch03_correction_tri_date.exe


et j'aimerai récupérer que les noms (icem,mygale etc) et les états (SOFT) à partir de ce fichier et importer ces données vers ma bdd.

le pb c'est que je n'arrive pas à bien séparer ma chaîne de caractère.
voici le code :

 
OleDbCommand cmdLogiciel = new OleDbCommand("INSERT INTO logiciel (nom,etat) VALUES (@nom,@etat), connection)";
OleDbCommand cmdVerifLogiciel = new OleDbCommand("SELECT count (*) FROM logiciel WHERE nom = @nom AND etat = @etat",connection);

string[] allLines = File.ReadAllLines(tempFile);

for(int i = 1; i <= allLines.Length; i++)
{
string[] items = Regex.Split(".", ",");

try
{
connection.Open();
new OleDbParameter("@nom", items[0]);
new OleDbParameter("@etat", items[2]);

//Verifier si les donnees existe deja dans la base
int count = (int)cmdVerifLogiciel.ExecuteScalar();

if(count <= 0 ) //
{

cmdLogiciel.ExecuteNonQuery();
connection.Close();
}

}
catch (Exception ex)
{
MessageBox.Show("Error " + ex);
connection.Close();
}
}
Afficher la suite 

Votre réponse

5 réponses

Messages postés
12262
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
17 novembre 2018
- 3 mai 2017 à 13:17
0
Merci
Bonjour

que veut dire
le pb c'est que je n'arrive pas à bien séparer ma chaîne de caractère

Cette ligne BRIDGE.V2014R6I1.SOFT est sensée devenir quoi?
Et celle-ci TSFX.V2R3I2.SOFT,patch01_corrections.exe,patch02_clock.exe,patch03_correction_tri_date.exe ?


Messages postés
15
Date d'inscription
lundi 21 novembre 2016
Dernière intervention
16 avril 2018
- 3 mai 2017 à 14:00
enft il faut que la ligne "BRIDGE.V2014R6I1.SOFT" devienne "BRIDGE SOFT" et l'autre ligne comme "TSFX SOFT".

Dans mes requêtes les noms correspondent a BRIDGE, TSFX,mygale, photoshop etc et les états correspondent a SOFT

je dois donc virer tt ce qui est entre le nom et l'etat, c'est a dire les mots qui commencent par V puis virer tout les patchs qui se trouvent a la fin.

Merci
Commenter la réponse de Whismeril
Messages postés
12262
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
17 novembre 2018
- 3 mai 2017 à 15:53
0
Merci
OK, pas forcement besoin de Regex alors.

string[] morceaux = allLines[i].Split(',','.');

j'ai tapé de tête, il y a peut être une coquille.
Messages postés
15
Date d'inscription
lundi 21 novembre 2016
Dernière intervention
16 avril 2018
- 3 mai 2017 à 16:15
string [] items = allLines[i].Split(new char[] { '.', ',' });


j'ai trouvé ça et ça marche aussi
Messages postés
12262
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
17 novembre 2018
- 3 mai 2017 à 16:23
oui mais tu remarqueras que la signature de Split te dis que le tableau de char est "param", ce qui veut dire que tu tapes directement tes char et c'est automatiquement compris comme étant un tableau, en fait le new char[] {....} est fait pour toi.
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.