質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Visual Studio

Microsoft Visual StudioはMicrosoftによる統合開発環境(IDE)です。多種多様なプログラミング言語に対応しています。

VB.NET

Microsoft Visual Basic .NETのことで、Microsoft Visual Basic(VB6)の後継。 .NET環境向けのプログラムを開発することができます。 現在のVB.NETでは、.NET Frameworkを利用して開発を行うことが可能です。

Q&A

解決済

2回答

913閲覧

テキストファイル書き込み時に行ごとに採番を行いたい

gyaSon

総合スコア16

Visual Studio

Microsoft Visual StudioはMicrosoftによる統合開発環境(IDE)です。多種多様なプログラミング言語に対応しています。

VB.NET

Microsoft Visual Basic .NETのことで、Microsoft Visual Basic(VB6)の後継。 .NET環境向けのプログラムを開発することができます。 現在のVB.NETでは、.NET Frameworkを利用して開発を行うことが可能です。

0グッド

0クリップ

投稿2019/07/26 08:15

編集2019/07/26 08:27

現在、処理結果のログをテキストファイルに吐き出すアプリケーションを開発しているのですが前段階として事前学習している内容になります。

テキストボックスに入力した内容をテキストファイルに上書き、追加書き込みを行うものなのですが、入力されたテキストデータごとに自動的に採番を行いたいです。
ベースとなるコードを下記に記載いたします。

Public Class Form1 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click 'テキストファイルを上書きで保存する Dim sw As New System.IO.StreamWriter("....\log_output.txt", False, System.Text.Encoding.Default) '書込み sw.Write(TextBox1.Text) sw.Close() End Sub Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click 'テキストファイルを追加書込みで保存する Dim sw1 As New System.IO.StreamWriter("....\log_output.txt", True, System.Text.Encoding.Default) '書込み(上記で作成したファイルに書き込んでいます) sw1.Write("," & TextBox1.Text) sw1.Close() '結果 texebox1の内容追加 End Sub End Class

開発環境はVS2019 VB.NET にて行っています。

調べた中ではテキストファイル自体に採番することは出来るようなのですが
内容にあたる部分の採番の方法が考え付きません。

ご不明な点などがありましたらお申し付けください。
御助力の程宜しくお願い致します。

追記
改行するよう修正しました。

Public Class Form1 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click 'テキストファイルを上書きで保存する Dim sw As New System.IO.StreamWriter("....\log_output.txt", False, System.Text.Encoding.Default) '書込み sw.Write(TextBox1.Text) sw.Close() End Sub Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click 'テキストファイルを追加書込みで保存する Dim sw1 As New System.IO.StreamWriter("....\log_output.txt", True, System.Text.Encoding.Default) '書込み(上記で作成したファイルに書き込んでいます) sw1.Write("," & TextBox1.Text, Environment.NewLine) sw1.Close() '結果 texebox1の内容追加 End Sub End Class

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

y_waiwai

2019/07/26 08:20

あなたのいう採番とはどういうことなんでしょうか。
gyaSon

2019/07/26 08:25

項目番号のイメージです。 1.aaa 2.bbb 3.ccc といった感じです。
papinianus

2019/07/26 10:58

ちょっと外れたこと聞きますけど、それってファイルに書くべきことなのですかね? それユーザが読み込みしたら書いたつもりがない番号ついてるのですよね? 表示するときだけ、vsで書いてると思うのですが、コピペしたときその左の行番号ついたら嫌じゃないですか? 途中に挿入したくなったらどうします?
guest

回答2

0

とりあえず、ソフトを起動したら0からカウントするものを作ってみればいいんじゃないですか?

で、続きからカウントするのであれば、その初期値を変更するだけですよね。
ファイルの行数カウントはこちらを参照すればいいでしょうし

投稿2019/07/26 09:01

YAmaGNZ

総合スコア10222

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

ベストアンサー

プログラム起動時にテキストファイルを読み込み、最終行の番号を取得しておき、
その番号を基準に、採番/テキスト書き込む。
ということでいいかと。

投稿2019/07/26 08:32

y_waiwai

総合スコア87719

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

gyaSon

2019/07/26 08:49

仮に最終行を100とした場合どのように記述するのでしょうか。 答えを引き出す聞き方になってしまいすみません。 もしくはそこにつながるキーワードなど教えていただけないでしょうか
y_waiwai

2019/07/26 08:56

そのテキストファイルを読み込み、その最終行の番号の100というのを取得します そうすればその次に書き込みのは101だしそのまたつぎは102でしょう
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問