Kleines Tutorial zum Erhalten von Antworten im Forum von FreeBASIC

Autor:ytwinky, MD
Ich hab da mal 'ne Frage..

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:
Ich wähle im Forum eine geeignete Stelle und poste meine Frage..

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..)
Oder es passiert lange Zeit garnichts, weil sich kein anderer Forenbenutzer gerade mit diesem Thema beschäftigt/beschäftigen möchte.

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:

Meine Frage: Ich möchte einen beliebigen Dateinamen mit FreeBASIC in seine Bestandteile Laufwerk/Pfad/Dateiname und Erweiterung aufteilen.
Dazu habe ich folgendes Programm geschrieben:
'Ä=Ž , Ö=™ , Ü=š ; ä=„ , ö=”, ü= , ß=á ,§=õ , ©=¸
'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.
Kann mir jemand vielleicht sagen, wo der Fehler ist?
Danke im Voraus

(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.
(Vorsicht bei Bildern: Nicht allzugroße Formate wählen, denn Nicht-DSL-Benutzer reagieren evtl. ungehalten..)

Viel Spaß im Forum
Gruß
ytwinky