mistergooglehupf
Goto Top

Ersetzen eines Wertes in Visual Basic

Hallo zusammen

Ich habe ein Problem mit dem ersetzen eines Wertes in Visual Studio.

Mein Problem ist folgendes:

- Wie ersetze ich einen Wert in einem String mit einem jeweiligen anderen Wert?

Natürlich habe ich das Internet schon genutzt und schnell festgestellt, dass es eigentlich mit dem Befehl "Replace(Dateiinhalt, ",", " ")" klappen müsste ... (was es aber nich tut)

- Ich habe schon andere Sonerzeichen genommen, mit der möglichkeit die zu erkennen.

- Den Block mit dem "schliessen der Datei" bzw. "ersetzen" wurden vertauscht.

Stehe ehrlich gesagt vor einem Rätsel, bei dem ich nicht weiter komme ...


Mein Code:

'Bestimmen und deklarieren der Variablen
Dim objStreamWriter As StreamWriter
Dim Dateiinhalt As String

'Einlesen der Datei
Dateiinhalt = My.Computer.FileSystem.ReadAllText("Dateiname zum Einlesen")

'Erstellen der Datei im Texteditor
objStreamWriter = New StreamWriter("Dateiname zum Ausgeben")

'Einfügen des Strings "Dateiinhalt" in die Datei
objStreamWriter.Write(Dateiinhalt)

'Schliessen der Datei
objStreamWriter.Close()

'Ersetzen des Teilstrings , durch ein Leerschlag
Replace(Dateiinhalt, ",", " ")

Schon im voraus danke, für die Mühe die ihr aufwendet.


Grüsse

MisterGoogleHupf

Content-Key: 78227

Url: https://administrator.de/contentid/78227

Printed on: April 25, 2024 at 12:04 o'clock

Member: SlainteMhath
SlainteMhath Jan 15, 2008 at 15:44:58 (UTC)
Goto Top
Replace(Dateiinhalt, ","," ")
Also lt. MSDN (http://msdn2.microsoft.com/en-us/library/fk49wtc1.aspx)
) sollte

Dateiinhalt=Dateiinhalt.Replace(","," ")

funktionieren.
Member: bastla
bastla Jan 15, 2008 at 16:56:00 (UTC)
Goto Top
Hallo MisterGoogleHupf und willkommen im Forum!

Wie sieht's aus, wenn Du zusätzlich noch etwas die Reihenfolge änderst (nach dem "objStreamWriter.Close()" ist der Kuchen schon lange gegessen face-wink - SCNR):
'Bestimmen und deklarieren der Variablen  
Dim objStreamWriter As StreamWriter
Dim Dateiinhalt As String

'Einlesen der Datei  
Dateiinhalt = My.Computer.FileSystem.ReadAllText("Dateiname zum Einlesen")  

'Ersetzen des Teilstrings , durch ein Leerschlag  
Dateiinhalt = Replace(Dateiinhalt, ",", " ")  

'Erstellen der Datei im Texteditor  
objStreamWriter = New StreamWriter("Dateiname zum Ausgeben")  

'Einfügen des Strings "Dateiinhalt" in die Datei  
objStreamWriter.Write(Dateiinhalt)

'Schliessen der Datei  
objStreamWriter.Close()

Grüße
bastla
Member: MisterGoogleHupf
MisterGoogleHupf Jan 16, 2008 at 07:21:41 (UTC)
Goto Top
@ SlainteMhath

Eigentlich hast du recht und es sollte mit diesem Befehl lösbar sein. Mir kommen aber langsam bedenken auf, was diesen Befehl (replace). Entweder verwende ich den Befehl komplett falsch oder es gäbe eine Alternative die ich übersehen habe ... :D

@bastla

Ich habe mir mal erlaubt dein Code zu übernehmen und musste feststellen, dass es mir keine Auslagerungsdatei erzeugt. (Programm läuft sonst Fehlerfrei)

Grüsse

MisterGoogleHupf
Member: bastla
bastla Jan 16, 2008 at 16:41:40 (UTC)
Goto Top
Hallo Mister GoogleHupf!

Da ich ja gerne mal ein Ratespiel absolviere, nehme ich an, Du versuchst den Code unter VB2005 auszuführen - in diesem Fall wäre nicht "StreamWriter", sondern "IO.StreamWriter" zu verwenden (und dann macht das Programm, vorausgesetzt es werden gültige Dateinamen der Art "D:\Test\InFile.txt" verwendet, auch was es soll).

Grüße
bastla
Member: MisterGoogleHupf
MisterGoogleHupf Jan 17, 2008 at 09:27:09 (UTC)
Goto Top
Hallo Bastla

Wie du schon richtig erraten hast, verwende ich Visual Studio 2005. Wie ich nun merkte, habe ich dir vergessen ein nicht gerade unwichtiger Teil des Programms zu zeigen ...

Imports System.IO
Imports System.Text

Das IO wurde oben eingebunden und sollte meiner Meinung nach kein Problem darstellen.
Mit dem "Import System.Text" tappe ich noch im Dunklen, für was man das einbindet.

Du hast gesagt ich soll mit "IO.StreamWriter" arbeiten, aber sollte es mit IO.objStreamWriter nicht ein Unterschied geben? Weil ohne das jeweilige "obj", erkennt er den Befehl nicht .... face-sad

Danke schon im voraus für deine Antwort :D

grüsse

MisterGoogleHupf


Edit: Ich Superheld habe es tatsächlich geschaft, bei der Auslagerungsdatei den Laufwerksbuchstaben zu vergessen ...

Sorry, für die missverständnise und danke nochmals für die rasche und gute Unterstützung :D

grüsse

MGH
Member: bastla
bastla Jan 17, 2008 at 10:03:51 (UTC)
Goto Top
Hallo MisterGoogleHupf!

... habe ich dir vergessen ein nicht gerade unwichtiger Teil des Programms zu zeigen ...
... womit sich zumindest diese Fehlerquelle ausschließen lässt. Sollte ich noch etwas wissen? face-wink

... sollte es mit IO.objStreamWriter nicht ein Unterschied geben?
Sobald Du es geschafft hast, "objStreamWriter" zu deklarieren, ist das vermutete Problem ohnehin vom Tisch. Ansonsten wäre es (ohne den Import der angeführten Klassen) so gemeint gewesen:
Dim objStreamWriter As IO.StreamWriter

Wie gesagt - bei mir funktioniert der oben stehende Code, und dass bei Dir durch
objStreamWriter = New StreamWriter("Dateiname zum Ausgeben")  
noch nicht einmal eine leere Datei erzeugt wird, kann ich mir nicht erklären (einen vollständigen Pfad hast Du doch sicherlich angegeben) ...
Kurz möchte ich aber doch noch das eigentliche Thema dieses Threads ansprechen: Dass das "Replace" in der angegebenen Schreibweise geklappt hat, kannst Du durch die Kontrolle des Variableninhaltes von "Dateiinhalt" vor und nach dem "Replace" feststellen, auch wenn tatsächlich keine Datei erzeugt werden sollte.

Grüße
bastla