Buchempfehlung
Mikrocomputertechnik mit Controllern der Atmel AVR-RISC-Familie
Mikrocomputertechnik mit Controllern der Atmel AVR-RISC-Familie
Umfassend, aber leicht verständlich führt dieses Buch in die Programmierung von ATMEL AVR Mikrocontrollern ein. [Mehr Infos...]
FreeBASIC-Chat
Es sind Benutzer im FreeBASIC-Chat online.
(Stand:  )
FreeBASIC bei Twitter
Twitter FreeBASIC-Nachrichten jetzt auch über Twitter erhalten. Follow us!

Code-Beispiel

Code-Beispiele » Dateien und Laufwerke

Tab2Spc

Lizenz:Erster Autor:Letzte Bearbeitung:
k. A.Redakteurytwinky 16.07.2011

Manchmal kann es nützlich sein, alle Tabs in einem (Programm-)Text durch eine bestimmte Anzahl von Leerzeichen zu ersetzen. Mit dem folgenden Programm gelingt das(kann z.B. im Menü von einem Datei-Kommander untergebracht werden):

#include "vbcompat.bi"
#define ArgC ((*__p___argc())-1)
#undef GoTo 'Jojo hat Recht, danke ;-))
#ifndef False
  Const False=0
#endif
#ifndef True
  Const True=Not False
#endif

'+-----------------------------------------------------------------------------------+
'|    Header: Bestimmen der Übergabeparameter                                        |
'|    AnzeigeCheck:|Il1 sind:Alt-0124, Großes i, kleines L, Eins „ä”öüáߎę֚Üñ±ø°¸©|
Const Autor="Tab2Spc.Bas v0.99.1 ¸2011 by ytwinky, MD"'                              |
'|           (Tastenkombination: keine)                                              |
'|    Zweck : Alle Tabs in einer Ascii-Datei durch Leerzeichen ersetzen 1.Versuch    |
'|    Getestet mit dem aktuellen fbc und FBEdit 1.0.7.6c                             |
'+-----------------------------------------------------------------------------------+
'(Anmerkung zu den Sonderzeichen: zuerst steht das DOS-Zeichen, danach das Windowszeichen)
Const Cr=!"\r", Lf=!"\n", CrLf=Cr & Lf, OldTab=!"\t"
Declare Sub Hilfe()
Declare Function Replace(Text As String, Search As String, ReplaceWith As String) As String
Dim Shared As Integer TabSize=2
Var i=0, NewTab=Space(TabSize), s="", z="", DateiName="", DNr=0

Select Case lcase(Command(1))
  Case "/?", "/h", "-?", "-h"
    Hilfe()
  Case Else
    DateiName=Command(1)
    If FileExists(Command(1)) Then
      DateiName=Command(1)
    Else
      If Dateiname="" Then DateiName=!"\b"
      Print "Die Datei " & Dateiname  &!" gibt es nicht!\n"
      Hilfe()
    EndIf
End Select
i=ValInt(Command(2))
If i<>0 And i<>TabSize And (i>1 Or i<9) Then TabSize=i
NewTab=Space(TabSize)
DNr=FreeFile
Open DateiName For Input As DNr
  While Not Eof(DNr)
    Line Input #DNr, z
    s &=z &CrLf
  Wend
Close(DNr)
s=Replace(s, OldTab, NewTab)
Open DateiName For Output As DNr
  Print #Dnr, s
Close(DNr)
Print s
GetKey
End

Function Replace(Text As String, Search As String, ReplaceWith As String) As String
  Var SrcText=Text, found=InStr(SrcText, Search), lSearch=Len(Search)
  While found
    If lSearch Then
      SrcText=Left(SrcText, found-1) &ReplaceWith &Mid(SrcText, found+lSearch)
    Else
      Mid(SrcText, found)=ReplaceWith
    EndIf
    found=InStr(found+1, SrcText, Search)
  Wend
  Return SrcText
End Function

Sub Hilfe()
  Print Autor &!"\nAufruf Tab2Spc DateiName [Tabgr”áe]\nwobei:\n" &_
    !"  DateiName  Name einer vorhandenen Datei ist\n" &_
    !"  Tabgr”áe   Anzahl der Leerzeichen fr einen Tab(Standard:" & TabSize &!")\n" &_
    "Weiter mit dem n„chsten Versuch ;-))"
  GetKey
  End
End Sub

..unnötig, zu erwähnen, daß dieser Sourcecode vorher durch Tab2Spc gegangen ist ;-)
Fröhliches Umformen
Gruß
ytwinky


Zusätzliche Informationen und Funktionen
  • Das Code-Beispiel wurde am 12.07.2011 von Redakteurytwinky angelegt.
  • Die aktuellste Version wurde am 16.07.2011 von Redakteurytwinky gespeichert.
  Bearbeiten Bearbeiten  

  Versionen Versionen