[VB .NET] Strings & Char arrays, gaat iets mis :)

Pagina: 1
Acties:

  • dixon
  • Registratie: Januari 2001
  • Laatst online: 16-08 17:19
Oke, ik ben eigenlijk C++ programmeur en heb weinig ervaring met VB en VB.NET , dus als ik iets geks doe dan snap je waarom :).

Ik heb even in de search gezocht maar kon het niet echt vinden voor .Net. Ook geen goeie StringCopy functie of iets dergelijks.

Wat ik probeer te doen is het volgende. Ik heb een string (pad + bestandsnaam) bijv. "c:\bla\bla.txt". Ik wil deze uiteindelijk opgesplit in de volgende variabelen:
file_path = "c:\bla\"
file_name = "bla.txt"

Source code(beetje ingekort):
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
            Dim teller

            Dim file_path As String
            Dim file_name As String

            Dim path_file_name As String
            Dim file_name_invert As String

            Dim myCharacArray(100) As Char
            Dim newChrArray(100) As Char

            path_file_name  = "d:\files\bla.txt"

            myCharacArray = StrReverse(path_file_name)
            lblInvert.Text = myCharacArray ' uitvoer klopt namelijk: "txt.alb\selif\:d"

            teller = 0
            While Not (myCharacArray(teller) = "\")
                newChrArray(teller) = myCharacArray(teller)
                teller = teller + 1
            End While

            lblFileNameInvert.txt = newChrArray ' uitvoer klopt namelijk "txt.alb"

            file_name = StrReverse(newChrArray)
            lblFileName.Text = file_name ' geen uitvoer


Oftewel, file_name = "", wat ik vrij vreemd vind. Kheb onder andere het volgende geprobeerd, laatste stukje anders:
code:
1
2
            file_name = StrReverse(newChrArray.ToString())
            lblFileName.Text = file_name ' uitvoer klopte weer niet: "][rahC.metsyS"


][rahC.metsyS is natuurlijk System.Char[], alleen ik snap niet hoe/waarom.

Wat een onzin..


  • whoami
  • Registratie: December 2000
  • Laatst online: 17:38
Je moet niet met string functies gaan zitten klooien als je iets met bestandsnamen wilt doen in .NET.

Kijk eens naar de Path class. Die heeft een aantal static (shared) methods zoals:
code:
1
2
3
GetDirectoryName
GetFileName
GetFullPath

etc.

[ Voor 34% gewijzigd door whoami op 22-10-2003 19:11 ]

https://fgheysels.github.io/


  • dixon
  • Registratie: Januari 2001
  • Laatst online: 16-08 17:19
Naar de Path class kijken? Hoe doe ik dat? :) Ik zoek wel ff in Visual Studio .Net..

En ehm, ja ik heb zo'n File, Open menu gemaakt, en weet hoe ik er wat aan bind, maar ik vraag nu gewoon het pad+bestandsnaam op met een InputBox. Ik heb geen idee hoe ik zo'n File Open dialoog maak :) Kheb erna gezocht op google maar is niet te doen :)

Het zou wel makkelijk zijn als iemand er gewoon een functie van had gemaakt die je kan kopieeren en plakken :)


[edit]

oke gevonden :) msdn lib, ik ga hier even mee aan de gang


Dim fileName As String = "C:\mydir\myfile.ext"
Dim pathname As String = "C:\mydir\"
Dim rootPath As String = "C:\"
Dim directoryName As String

directoryName = Path.GetDirectoryName(fileName)
Console.WriteLine("GetDirectoryName('{0}') returns '{1}'", fileName, directoryName)

directoryName = Path.GetDirectoryName(pathname)
Console.WriteLine("GetDirectoryName('{0}') returns '{1}'", pathname, directoryName)

directoryName = Path.GetDirectoryName(rootPath)
Console.WriteLine("GetDirectoryName('{0}') returns '{1}'", rootPath, directoryName)

[ Voor 42% gewijzigd door dixon op 22-10-2003 19:21 ]

Wat een onzin..


  • whoami
  • Registratie: December 2000
  • Laatst online: 17:38
[nohtml]
dixon schreef op 22 October 2003 @ 19:14:
Naar de Path class kijken? Hoe doe ik dat? :) Ik zoek wel ff in Visual Studio .Net..
Kijk in de help van .NET ofzo

[nohtml]
dixon schreef op 22 October 2003 @ 19:14:

En ehm, ja ik heb zo'n File, Open menu gemaakt, en weet hoe ik er wat aan bind, maar ik vraag nu gewoon het pad+bestandsnaam op met een InputBox. Ik heb geen idee hoe ik zo'n File Open dialoog maak :) Kheb erna gezocht op google maar is niet te doen :)
Kijk hiervoor ook in de help of in je toolbox, en zoek eens naar de OpenFileDialog class.

[ Voor 51% gewijzigd door whoami op 22-10-2003 19:21 ]

https://fgheysels.github.io/


  • Surehand
  • Registratie: Februari 2003
  • Laatst online: 18-08 15:40
Visual Basic .NET:
1
2
3
4
5
6
7
8
Imports System.IO
Module Module1

    Sub Main()
        Console.WriteLine(Path.GetDirectoryName("c:\windows\temp\bla.txt"))
    End Sub

End Module


Geeft c:\windows\temp als uitvoer

  • dixon
  • Registratie: Januari 2001
  • Laatst online: 16-08 17:19
Thnx guys, it seems to work :)

Wat een onzin..

Pagina: 1