2017-01-31 13 views
0

私はvb.netの初心者です。 vb.netで最後のインデックス番号を取得するにはどうすればよいですか?最後のインデックス番号を取得するVB.net

例: ファイル名が異なる3つのテキストファイルがあります。

アプリケーションが再起動するたびに、最後のインデックス番号で処理が続行されます。

例: ファイル名1が先にアプリケーションを再度開き、filename2に進みます。

私の問題は、アプリケーションを再起動するたびにfilename1が常に開かれ、filename2に続かないということです。

どうすればいいですか?ありがとう!

+0

index_numberを取得するにはどうすればよいですか? –

+0

'My.Settings'を使って、アプリの実行の間に小さなものを保存します。 – Plutonix

+0

ようこそスタックオーバーフロー!あなたは[良い質問をする方法](http://stackoverflow.com/help/how-to-ask)を学んで[最小、完全、および検証可能]を作成することができます(http://stackoverflow.com/help/ mcve)の例です。そうすれば、私たちがあなたを助けやすくなります。 –

答えて

1

アプリケーションを再起動するたびに、変数が再初期化されます。索引の状態を永続メモリー(ファイルやデータベースのようなもの)に保管してから、アプリケーションが終了したとき、または他のときに索引の状態を保管する必要があります。その後、アプリケーションを起動すると、最後のインデックス番号のファイルまたはデータベースが読み込まれます。

1

最後のファイルを読み込んで、最後のインデックスを増やして次に作成することができます。

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"