Access97 String zerlegen

Ich habe folgendes Problem:
…möchte eine Zeichenfolge zerlegen.

Beispiel Dateiname mit Extension

mein_Dateiname.doc

es soll danach noch übrig bleiben mein_Dateiname (ohne .doc)

mit der Funktion rigth(Name, 4) erhalte ich .doc ich brauche aber die Zeichen links davon. Hat jemand eine Idee?

Gruß Ortwin09

Moin Moin,

schau dir mal die Funktion InStr an.

Grüße aus Rostock
Wolfgang
(Netwolf)

Irgendwie funktioniert es nicht ich erhalte mit der InStr Funktion als Rückgabewert nur Zahlen, ich brauche aber wie in meinem Beispiel den Text.

Eingabe: „mein_Dateiname.doc“

mit der Funktion soll .doc abgetrennt werden

Ergebnis: der Text „mein_Dateiname“ soll übrig bleiben

Hallo,

wenn Du einfach die vier Zeichen rechts abtrennen willst, geht das so

Dim stEingabe As String
Dim stAusgabe As String
stEingabe = „mein_Dateiname.doc“
stAusgabe = Left(stEingabe, Len(stEingabe - 4))

Die InStr-Funktion ist wichtig, wenn Du überprüfen willst (mußt), ob überhaupt ein Punkt im Dateinamen vorkommt und an welcher Stelle.

MfG,

ujk

Ist genau das was ich will, aber die Procedure funktioniert bei mir nicht das Minuszeichen wird als Fehler angemeckert.

Hallo,

das muss so lauten:

stAusgabe = Left(stEingabe, Len(stEingabe) - 4)

Solltest Du aber selber hinbekommen… :wink:

Gruß
Franz, DF6GL

Moin Moin,

Die InStr-Funktion ist wichtig, wenn Du überprüfen willst
(mußt), ob überhaupt ein Punkt im Dateinamen vorkommt und an
welcher Stelle.

genau, denn das ist imho wichtig wenn nicht nur .DOC sondern auch .DOCX als Dateiendungen vorkommen können.

Daher mein Vorschlag:
Dim stEingabe As String
Dim stAusgabe As String
Dim PKT_Pos

stEingabe = „mein_Dateiname.doc“
PKT_Pos = INSTR(1,stEingabe,".") 'Position des Punktes ermitteln
stAusgabe = MID(stEingabe,1,PKT_Pos-1) 'von ersten Position bis vor dem Punkt ausgeben

Tipp am Rande: setze den Cursor mittig auf z.B. INSTR und drücke die F1 Taste. Dann wird dir Hilfe mit dem Syntax und i.d.R. Beispielen angezeigt.

Grüße aus Rostock
Wolfgang
(Netwolf)

Hallo,

kleine Anmerkung:

allgemeiner, bzw. sicherer wäre die Verwendung von InStrRev, um von „rechts“ her den Extension-Punkt zu finden. Oftmals gibt es auch einen oder sogar mehrere Punkte im Dateinamen selber, die nicht die Abgrenzung zur Dateinamenerweiterung darstellen.

Gruß
Franz, DF6GL

Habe es geschafft, Dank Eurer Hilfe!

Danke nochmals Ortwin09

allgemeiner, bzw. sicherer wäre die Verwendung von InStrRev,
um von „rechts“ her den Extension-Punkt zu finden. Oftmals
gibt es auch einen oder sogar mehrere Punkte im Dateinamen
selber, die nicht die Abgrenzung zur Dateinamenerweiterung
darstellen.

Hallo Franz,

m.W. gab es in Office97 noch kein InstrRev.
Die Funktion müßte man sich selbst schreiben genau wie Split().

Punkte im Dateinamen sind inzwischen erlaubt? UI, kaum glaub. Ich mache so einen Mist nie. Meine Dateinamen befolgen gewissermaßen noch die alte 8.3 Regel ohne Sonderzeichenschnickschnack.

Okay, inzwischen auch mehr als 8 als Namen , aber never in the morning time äöß. usw. im Namen. Dito bei der Endung.

Zum Code, ich würde vorab mit Instr „.doc“ abprüfen.

@Anfrager, wenn du in Access97 Vba machst könntest du ja vllt. die
Funktionen InstrRev und Split ab und zu brauchen.
Sag Bescheid, habe mir da was gebastelt vor langer Zeit.

Gruß
Reinhard