2017-01-31 1 views
0

Je suis un débutant dans vb.net. Comment puis-je obtenir le dernier numéro d'index sur vb.net? Par exemple: J'ai un 3 fichiers texte, qui a un nom de fichier différent.Obtenez le dernier numéro d'index VB.net

Chaque fois que l'application redémarre, elle continue avec le dernier numéro d'index.

Par exemple: Filename1 previoulsy, rouvert l'application à nouveau, puis il continuera à filename2.

Mon problème est, chaque fois que je redémarre l'application, le nom de fichier1 est toujours ouvert, il ne continue pas à filename2.

Comment est-ce que je ferais cela? Merci!

+0

Comment puis-je obtenir le numéro d'index? –

+0

Utilisez 'My.Settings' pour enregistrer quelque chose d'aussi petit entre les exécutions de l'application. – Plutonix

+0

Bienvenue sur Stack Overflow! Vous pouvez apprendre [Comment poser une bonne question] (http://stackoverflow.com/help/how-to-ask) et créer un [Minimal, complet et vérifiable] (http://stackoverflow.com/help/ mcve) exemple. Cela nous permet de vous aider plus facilement. –

Répondre

1

Chaque fois que vous redémarrez votre application, les variables sont réinitialisées. Vous utilisez probablement un entier pour l'index et vous l'avez initialisé à 1. Vous devez stocker l'état de l'index dans la mémoire persistante (comme un fichier ou une base de données), puis lorsque votre application se ferme ou à un autre moment. Ensuite, lorsque vous démarrez votre application, lisez le fichier ou la base de données pour le dernier numéro d'index.

1

Vous pouvez lire votre dernier fichier et créer ensuite en incrémentant le dernier index.

Dim newFileIndex as Integer = Directory.GetFiles().Select(
    Function(full) 
     Dim nameParts() As String = full.Split("\", StringSplitOptions.RemoveEmptyEntries) 
     Dim name As String = nameParts(nameParts.Length - 1) 
     name = name.Substring("filename".Length, name.LastIndexOf(".") - "filename".Length) 
     ' At this point you have your file number. 
     ' for example, if your file is "filename100.txt" the variable [name] now has 100 in it 
     Return Convert.ToInt32(name) 
    End Function).Max() + 1 

    'Now you can create new filename 
    filename = "filename" & newFileIndex.ToString() & ".txt"