Das ist die Grundvoraussetzung, ohne die überhaupt nichts läuft. Es gibt allerdings mehrere Möglichkeiten, auf so eine Frage auch eine Antwort zu erhalten. Von den vielen Wegen habe ich für den Anfang einmal 3 Methoden herausgegriffen(Diese Methoden sind weitgehend unabhängig von Hardware und Betriebssystem).
1. Der langsame Weg:z.B.:Wie teile ich einen beliebigen Dateinamen mit FreeBASIC in seine Bestandteile Laufwerk/Pfad/Dateiname und Erweiterung auf?
(Möglicherweise hagelt es dazu Links auf vorhandene Forenseiten oder aber auch nur ein Verweis auf diese Seite..)2. Der etwas schnellere Weg:
Ich poste im Forum an geeigneter Stelle meine Frage in der Form:
Ich möchte einen beliebigen Dateinamen mit FreeBASIC in seine Bestandteile Laufwerk/Pfad/Dateiname und Erweiterung aufteilen, dabei liefert folgender Code keine brauchbaren Ergebnisse:
For i=pt To dp Step -1 'Now search for filename
If Mid(s, i, 1)=Chr(92) Or i=1 Then 'separator found or stringstart..
FRec.FName=Mid(s, i+1)
s=Mid(s, 1, i)
Exit For
End If
Next
FRec.FPath=s
Dieser Code läßt sich schon mal auf Fehler untersuchen, wenn aber offensichtliche Fehler ausgeschlossen werden können, gibt es mit Sicherheit eine Menge
Antworten, mit einem Inhalt wie:Poste doch mal den kompletten Code
Oder schlimmer noch:Ich weiß nicht, was du willst, bei mir läuft der Code einwandfrei..
3. Der sichere Weg:
Ich poste(zumindest beim ersten Mal oder bei Änderungen) Angaben zu:
'Ä=Ž , Ö=™ , Ü=š ; ä=„ , ö=”, ü= , ß=á ,§=õ , ©=¸
'Kann erstmal nur Windowsnamen auflösen
#include "crt.bi"
#include "vbcompat.bi"
#define ArgC ((*__p___argc())-1)
Option Escape
Option Explicit
Type FSplitRec
FDrive As String
FPath As String
FName As String
FExt As String
End Type
Declare Sub FSplit(byVal FSpec As String, byRef FRec As FSplitRec)
Declare Sub FSplitIt(byVal FSpec As String, byVal FRec As FSplitRec)
Sub FSplitIt(byVal FSpec As String, byVal FRec As FSplitRec)
?FSpec
FSplit FSpec, FRec
?"Laufwerk=";FRec.FDrive
?"Pfad=";FRec.FPath
?"Name=";FRec.FName
?"Ext=";FRec.FExt
End Sub
Sub FSplit(byVal FSpec As String, byRef FRec As FSplitRec)
Dim s As String=FSpec
Dim As Long dp=Instr(s, ":"), pt=0, i
FRec.FDrive=""
FRec.FPath=""
FRec.FName=""
FRec.FExt=""
If FSpec="" Then Exit Sub 'nothing to do, all done ;)
If dp Then 'DriveLetter Okay
FRec.FDrive=Left(s, dp)
s=Mid(s, dp+1)
End If
For i=Len(s) To 1 Step-1
Select Case Mid(s, i, 1)
Case Chr(92): Exit For
Case ".":
pt=i
Exit For
End Select
Next
If pt Then
FRec.FExt=Mid(s, pt)
s=Mid(s, 1, pt-1)
Else
pt=Len(s)
End If 'FileExtension Okay
For i=pt To dp Step -1 'Now search for filename
If Mid(s, i, 1)=Chr(92) Or i=1 Then 'separator found or stringstart..
FRec.FName=Mid(s, i+1)
s=Mid(s, 1, i)
Exit For
End If
Next
FRec.FPath=s
End Sub
Dim FRec As FSplitRec, DateiName As String
Screen 0:Width 80, 25
?"FSplit.Bas ¸2006 by ytwinky, MD"
DateiName="C:\\Dokumente und Einstellungen\\NetworkService\\Lokale Einstellungen\\Temporary Internet Files\\Content.IE5\\RTJCN2OL\\DeskTop.Ini"
Sleep
Allerdings arbeitet das Programm nicht wie gewünscht oder ich habe einen Denkfehler, den ich nicht finde.(Wohlgemerkt: 'Voraus' mit einem 'r', ist ja schließlich ein Torturial :D)
Wobei ich natürlich nicht vergessen darf, ggfs. externe Datenquellen zu beschreiben oder gleich mitzuposten.Viel Spaß im Forum
Gruß
ytwinky