Générer Matricule Alphnumérique

Résolu
cs_eyango Messages postés 45 Date d'inscription jeudi 24 août 2006 Statut Membre Dernière intervention 30 janvier 2014 - 14 nov. 2012 à 11:24
vb95 Messages postés 3472 Date d'inscription samedi 11 janvier 2014 Statut Contributeur Dernière intervention 13 avril 2024 - 16 mars 2019 à 15:29
Bonjour Tous,
je souhaite générer automatiquement le code d'un prêt d'un mutualiste dans cet ordre:

A0001, A0002, A0003, ..., A9999, B0001, ..., Z9999

pourriez vous me donner un coup de main j utilise Visual Studio 2010..

7 réponses

yann_lo_san Messages postés 1137 Date d'inscription lundi 17 novembre 2003 Statut Membre Dernière intervention 23 janvier 2016 26
30 nov. 2012 à 21:30
Salut,

Si tu as les droits d'accès au répertoire distant, le code ci-dessous devrait marcher

IO.File.Open(@"\\10.250.10.1\shareDir\file.xml", IO.FileMode.Open);

Sinon il faut exécuter un "net use" avec login/pass
via Process.Start()
ou utiliser p-invoke sur DllImport("advapi32.dll") et la fonction LogonUser

On peut aussi mapper un lecteur réseau en local qui pointe sur le répertoire distant, genre "Z:" avec les droits déjà configuré en amont:

IO.File.Open(@"Z:\file.xml")

Tu peux aussi utiliser HTTP et faire un "download" du fichier si celui-ci est stocké dans un site web.

WebClient webClient = new WebClient();
webClient.DownloadFile("http://unSite.com/unfichierSource.xml", @"c:\monFichierLocal.xml");

Ou par simple requete HTTP avec WebRequest.Create("uri") et GetStream()
Même chose avec l'objet FtpWebRequest et WebRequestMethods DownnloadFile
si le fichier est sur un ftp.

Voilà, beaucoup de solutions différentes... Tout dépendra du contexte.

bye
3
yann_lo_san Messages postés 1137 Date d'inscription lundi 17 novembre 2003 Statut Membre Dernière intervention 23 janvier 2016 26
14 nov. 2012 à 14:26
Salut,

La fonction n'est pas très compliquée :
On lui passe le code en cours et elle renvoi le prochain. Elle revient au premier code si on arrive à la fin (Z9999)
public static string GetNextCode(string sLastCode)
{
// Fait attention aux bornes inf et supp
if ( String.IsNullOrEmpty(sLastCode) || sLastCode == "Z9999" )
return "A0001";

// Suivant
string sNextCode = string.Empty;

if ( Convert.ToInt32(sLastCode.Substring(1,4)) == 9999 )
sNextCode = (((char)((int)sLastCode[0])=='Z') ? 'A' : (char)((int)sLastCode[0]+1)) + "0001";
else
sNextCode = (char)((int)sLastCode[0]) + (Convert.ToInt32(sLastCode.Substring(1,4))+1).ToString("0000");

return sNextCode;
}



Exemple d'appel :

string sLastCode = "E9999";
string sNextCode = GetNextCode(sLastCode);



bye...
1
tchindaruissel
15 mars 2019 à 22:17
peut pas t on faire sa avec les attribut simple exemple des char et convertir a la fin en string
0
vb95 Messages postés 3472 Date d'inscription samedi 11 janvier 2014 Statut Contributeur Dernière intervention 13 avril 2024 169 > tchindaruissel
16 mars 2019 à 15:29
bonjour !
un commentaire presque 7 ans après : je doute qu'il soit lu !
0
yann_lo_san Messages postés 1137 Date d'inscription lundi 17 novembre 2003 Statut Membre Dernière intervention 23 janvier 2016 26
14 nov. 2012 à 15:07
Re,

Si tu veux générer la totalité des codes en une seule fois, ben oui...

string sLastCode = null;
string sNextCode = "";

while( sNextCode != "Z9999"  )
{
    sNextCode = GetNextCode(sLastCode);

    // fait quelquechose avec sNextCode ici

    sLastCode = sNextCode;
}



ATTENTION, TRAITEMENT ASSEZ LONG !

bye...
1
dodo7263 Messages postés 614 Date d'inscription mercredi 10 septembre 2008 Statut Membre Dernière intervention 9 février 2017 6
14 nov. 2012 à 11:55
Salut,

Pour t'aider as tu déjà fait quelque chose ? Où tu coinces ?
Est ce que l'utilisateur saisie le code ?
Est ce le programme qui génère ce code automatiquement ?

Bref, on a pas tous les éléments.

@+

SD
0

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

Posez votre question
cs_eyango Messages postés 45 Date d'inscription jeudi 24 août 2006 Statut Membre Dernière intervention 30 janvier 2014
14 nov. 2012 à 14:51
je coince... l'utilisateur ne saisit rien... je fixe mon premier code à A0001... et le programme génère la suite...
0
cs_eyango Messages postés 45 Date d'inscription jeudi 24 août 2006 Statut Membre Dernière intervention 30 janvier 2014
28 nov. 2012 à 12:46
Salut yann_lo_san
Merci pour ta contribution... j ai un autre souci... je souhaite lire un fichier EXCEL sur une machine dont l'adresse IP peut être 10.250.10.1 comment je procède???
pour lire le même fichier (enregistré sur ma machine en local) voici ce que je fais:


protected void ImporterButton_Click(object sender EventArgs e)
{
if ((DateCotisation.SelectedDate != null) && (FileUpload1.FileName != ""))
{
OleDbConnection conExcel = new OleDbConnection(@"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=D:" + FileUpload1.FileName + @";Extended Properties=""Excel 12.0 Xml;HDR=YES"";");
SqlConnection conSQL = new SqlConnection(@"Data Source=BAYARDJOEL\BAYARDJOEL;Initial Catalog=MURCASFASAS;Integrated Security=True;MultipleActiveResultSets=True");

OleDbDataAdapter Da= new OleDbDataAdapter();

DataSet Ds = new DataSet();

OleDbCommand comm = new OleDbCommand("SELECT * FROM [RH$]", conExcel);


Da.SelectCommand = comm;
Da.Fill(Ds, "RH");
conSQL.Open();
int nCount = 0;
foreach (DataRow row in Ds.Tables["RH"].Rows)
{

string date = DateCotisation.SelectedDate.ToString();
ServiceCotisation SC = new ServiceCotisation();
DataAccesEF.cotisation DaC = new DataAccesEF.cotisation();
ServiceSuivi_Pret SSP = new ServiceSuivi_Pret();
ServiceAdherernt SA = new ServiceAdherernt();
DataAccesEF.suivi_pret DaSP = new DataAccesEF.suivi_pret();
ServicePret SP = new ServicePret();
string Mois = SC.ConvertirDateMois(Convert.ToDateTime(DateCotisation.SelectedDate));
string Annee = SC.ConvertirDateAnnee(Convert.ToDateTime(DateCotisation.SelectedDate));
DataAccesEF.pret DaP = new DataAccesEF.pret();
DaC.Matricule = (row[0]).ToString();
DaC.CotisationMurcas = Convert.ToInt32(row[10]);
DaC.ReversementMurcas = Convert.ToInt32(row[13]);
DaC.RappelMurcas = Convert.ToInt32(row[14]);
DaC.CotisationFasas = Convert.ToInt32(row[15]);
DaC.ReversementFasas = Convert.ToInt32(row[16]);
DaC.RappelFasas = Convert.ToInt32(row[17]);
DaC.TotalMurcas = Convert.ToInt32(row[18]);
DaC.TotalFasas = Convert.ToInt32(row[19]);
DaC.DateCotisation = Convert.ToDateTime(DateCotisation.SelectedDate);

}
SC.AjouterCotisation(DaC);
}
0
cs_eyango Messages postés 45 Date d'inscription jeudi 24 août 2006 Statut Membre Dernière intervention 30 janvier 2014
10 déc. 2012 à 16:46
Salut yann_lo_san,

pourrais-tu me donner la procédure pas à pas de déploiement sur une serveur IIS version 6 et sous SQLSERVER 2008...???
Merci d'avance
0
Rejoignez-nous