1

一度に大量のテキストをファイルに書き込む必要がありますが、特定の方法でフォーマットする必要があり、すべてを 1 行に収める必要はありません。

私が持っているコードは次のとおりです。

  If System.IO.File.Exists(filepath) Then
        Using reader As StreamReader = New StreamReader(filepath)
            sLine = reader.ReadToEnd
        End Using

        Using writer As StreamWriter = New StreamWriter(filepath)
            writer.Write("[HealthBarSettings]
            MaxHealthTicks = 50
            MaxHealthMicroTicks = 100
            DefaultHealthPerMicroTick = 50
            DefaultHealthPerTick = 200
            DefaultHealthPerMegaTick = 1000

            TickAlpha = 200
            MicroTickAlpha = 140
            MicroTickHeight = 0.5
            MegaTickAlpha = 255
            TickThickness = 1.0
            MicroTickThickness = 1.0
            MegaTickThickness = 2.0

            UseCompression = 1
            GoTransparent = 1

            [GeneralDataHero]()
            FadeTimerForHealthBar = 2.0
            ZeroHealthAlpha = 225
            FullHealthAlpha = 200
            DefaultChampionCollisionRadius = 65.0")

        End Using
        MsgBox("File Written")
    Else
        MsgBox("File does not exist")
    End If

しかし、それはすべてのテキストを使用するわけではなく、"[HealthBarSettings]" のみを使用し、その後自動的に引用を終了するため、機能しません。

4

5 に答える 5

0

すべてのテキスト (行) を 1 つの配列に入れて使用します

        var arr = new[]{ "MaxHealthTicks = 50","MaxHealthMicroTicks = 100","DefaultHealthPerMicroTick = 50",
        "DefaultHealthPerTick = 200", "DefaultHealthPerMegaTick = 1000"};

        File.WriteAllLines(@"c:/temp/test.txt", arr);

すべてのテキスト行を適切な書式で新しい行に書き込みます。 ファイル内のテキスト

于 2013-04-17T03:23:20.620 に答える
0

文字列ビルダーでこれを行う方法の例

Dim sb as new StringBuilder
sb.appendLine("Line1")
sb.appendLine("Line2")
File.writeAllLines(filePath, sb.toString())

文字列ビルダ オブジェクトは文字列を繰り返し連結するよりも効率的であるため、これは良い方法です

于 2013-04-17T05:06:49.397 に答える
0

Cody Gray が非常に明確に述べているので、最終行でどのようにエラーを取得したのかわかりません。

あなたがしているのは、保存する長い文字列を実際に作成しているだけであることを忘れないでください。必要に応じて、すべてを 1 行で記述できます。

vbnewline は改行を追加し (クリア)、& 記号は別の行を追加する準備ができており、表示されるアンダースコアは、コード* を複数の行に表示できるようにするために使用されます (オプション)。

ライターのコードの最後のビットは、そうあるべきです。

..."[GeneralDataHero]()" & vbNewLine & _
"FadeTimerForHealthBar = 2.0" & vbNewLine & _
"ZeroHealthAlpha = 225" & vbNewLine & _
"FullHealthAlpha = 200" & vbnewline & _
"DefaultChampionCollisionRadius = 65.0")

End Using

& 記号または下線文字で終わっているように聞こえる式の予想エラーが表示されます。上記のように、最後の文字列値を「引用符」で囲み、閉じ括弧で終了する必要があります。

vb.netを始めたとき、すべてを1つの文字列にまとめてから、その文字列をライターに入れる方が簡単だとわかりました。結局のところ時間の無駄ですが、string = string & value を使用すると、もう少し明確にまとめることができます。

于 2013-04-18T13:05:48.403 に答える