Strona: [  << <   1   > >>  ]  z  1     
Autor Temat: Jak rozdzielic string
DJK



Typ: neutral
Postów: 871
Zarejestrowany: Feb 2004
Jak rozdzielic string

Witam

Mam String "D:\Mp3\mójplik.txt"

Jak zmiennej Path przypisać "D:\Mp3\"

a zmiennej Filename "mójplik.txt"

Oczywiście to jest przykład a ściezka i nazwa pliku moze być dowolna

P.S. Nie chcę używać Split i chciałem to zrobić jak najprościej

Pozdrawiam


_____________________________________________
Jeśli można coś zrobić w sposób optymalny to czemu nie

05-10-2004 21:36
Pokaż profil DJK  Wyślij email do DJK   Odwiedź stronę DJK  
marcin_an
Forumowicz




Typ: neutral
Postów: 1265
Zarejestrowany: Mar 2004


Dim sPath As String
Dim sFilename As String
Dim sFullPath As String

sFilename = Right(sFullPath, InStrRev(sFullPath, "" ) - 1)
sPath = Left(sFullPath, Len(sFullPath) - InStrRev(sFullPath, "" ) + 1)


A dlaczego nie chciałeś Split?

[Post edytowany dnia 06-10-2004 00:23 przez marcin_an]


_____________________________________________
Jedzonko dla Google'a:
Forum na temat Visual Basic, C, C++, Pascal, Programowanie, API, PHP, VBA, VB.NET, QBasic, VBScript, Komputery
Moja strona o wszystkim

06-10-2004 00:23
Pokaż profil marcin_an  Wyślij email do marcin_an   Odwiedź stronę marcin_an  
DJK



Typ: neutral
Postów: 871
Zarejestrowany: Feb 2004

InstrRev ?? Pierwsze słyszę

Dzięki trzeba to sprawdzić

Jeżeli chodzi o Split to trzeba byłoby użyć jakiejś petli albo tablicy - chyba ze się mylę to podajcie rozwiązanie przy użyciu Split

Pozdrawiam


_____________________________________________
Jeśli można coś zrobić w sposób optymalny to czemu nie

06-10-2004 08:29
Pokaż profil DJK  Wyślij email do DJK   Odwiedź stronę DJK  
anonim




Typ: Nie zarejestrowany
Jak rozdzielić string (ścieżka + plik)

'U mnie jeżeli w ten sposób to wychodzi tak
Private Sub Form_Load()

Dim sPath As String
Dim sFilename As String
Dim sFullPath As String

sFullPath = "C:\Autoexec.bat"

sFilename = Right(sFullPath, Len(sFullPath) - InStrRev(sFullPath, "\")
sPath = Left(sFullPath, InStrRev(sFullPath, "\" - 1)

If Right(sPath, 1) = ":" Then sPath = sPath & "\"

End Sub

06-10-2004 10:57
  
anonim




Typ: Nie zarejestrowany
Jak rozdzielić string (ścieżka + plik)

'sPath = Left(sFullPath, InStrRev(sFullPath, "\")
'sciezka jest zawsze z "\" i nieptrzena instrukcja if

06-10-2004 11:07
  
DJK



Typ: neutral
Postów: 871
Zarejestrowany: Feb 2004

Właśnie anonim też tak wcześniej myślałem że wystarczy znaleźć ostatniego backslasha tyle że nie wiedziłem że istnieje funkcja InstrRev, która szuka od tyłu

Pozdrawiam


_____________________________________________
Jeśli można coś zrobić w sposób optymalny to czemu nie

06-10-2004 12:17
Pokaż profil DJK  Wyślij email do DJK   Odwiedź stronę DJK  
marcin_an
Forumowicz




Typ: neutral
Postów: 1265
Zarejestrowany: Mar 2004

InStrRev działa dokładnie tak samo, jak InStr, ale liczy od końca. Ale samym InStr też by się dało załatwić.

InStrRef jest równoznaczne z Len(zmienna) - InStr(zmienna, szukane) + 1.

[Post edytowany dnia 06-10-2004 18:21 przez marcin_an]


_____________________________________________
Jedzonko dla Google'a:
Forum na temat Visual Basic, C, C++, Pascal, Programowanie, API, PHP, VBA, VB.NET, QBasic, VBScript, Komputery
Moja strona o wszystkim

06-10-2004 18:20
Pokaż profil marcin_an  Wyślij email do marcin_an   Odwiedź stronę marcin_an  
mikmas
From Łódź Stadt




Typ: neutral
Postów: 772
Zarejestrowany: Apr 2003

Jeżeli chodzi o split to wystarczy:

Const FileName="C:\windows\win.com"
dim Coss as variant
coss=split(filename,"\"
msgbox "Nazwa pliku: " & coss(ubound(coss)),vbinformation

Nie wiem czy działa - nie sprawdzałem . Dlaczego po wyedytowaniu, forum zjada "\"?!

[Post edytowany dnia 06-10-2004 18:29 przez mikmas]


_____________________________________________
4C;65;70;69;65;6A;20;62;79;9C;20;73;69;EA;20;
62;61;72;64;7A;69;65;6A;20;73;6B;6F;6E;63;65;
6E;74;72;6F;77;61;B3;20;6E;61;20;6F;64;70;6F;
77;69;65;64;7A;69;2C;20;61;20;6E;69;65;20;6E;
61;20;72;6F;7A;73;7A;79;66;72;6F;77;79;77;61;
6E;69;75;20;3A;50

06-10-2004 18:26
Pokaż profil mikmas  Wyślij email do mikmas   Odwiedź stronę mikmas       3632553
DJK



Typ: neutral
Postów: 871
Zarejestrowany: Feb 2004

no tyle że zmienna cos jest typu variant a po wykonaniu split staje się zmienną tablicową a nie chciałem korzystać z tablic

ubound(coos) - indeks ostatniej pozycji w tablicy coss

Dlatego nie chcę używać Split

Pozdrawiam


_____________________________________________
Jeśli można coś zrobić w sposób optymalny to czemu nie

06-10-2004 19:04
Pokaż profil DJK  Wyślij email do DJK   Odwiedź stronę DJK  
mikmas
From Łódź Stadt




Typ: neutral
Postów: 772
Zarejestrowany: Apr 2003

A co Ci tablice szkodzą?


_____________________________________________
4C;65;70;69;65;6A;20;62;79;9C;20;73;69;EA;20;
62;61;72;64;7A;69;65;6A;20;73;6B;6F;6E;63;65;
6E;74;72;6F;77;61;B3;20;6E;61;20;6F;64;70;6F;
77;69;65;64;7A;69;2C;20;61;20;6E;69;65;20;6E;
61;20;72;6F;7A;73;7A;79;66;72;6F;77;79;77;61;
6E;69;75;20;3A;50

06-10-2004 19:43
Pokaż profil mikmas  Wyślij email do mikmas   Odwiedź stronę mikmas       3632553
DJK



Typ: neutral
Postów: 871
Zarejestrowany: Feb 2004

Program powinien być zrobiony jak najmnijszym kosztem że się tak wyrażę - skoro można zrealizować funkcję w łatwiejszy sposób i wykorzystujc przy tym małą ilość pamieci to czemu nie.

Pozdrawiam


_____________________________________________
Jeśli można coś zrobić w sposób optymalny to czemu nie

06-10-2004 23:36
Pokaż profil DJK  Wyślij email do DJK   Odwiedź stronę DJK  
Wszystkich odpowiedzi: 10 :: Maxymalnie na stronę: 20
Strona: [  << <   1   > >>  ]  z  1