Code-Beispiel
Tab2Spc
Lizenz: | Erster Autor: | Letzte Bearbeitung: |
k. A. | ytwinky | 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
ytwinky angelegt.
- Die aktuellste Version wurde am 16.07.2011 von
ytwinky gespeichert.
|
|