PB-Declarer

Anwendungen, Tools, Userlibs und anderes nützliches.
Benutzeravatar
Josef Sniatecki
Beiträge: 657
Registriert: 02.06.2008 21:29
Kontaktdaten:

PB-Declarer

Beitrag von Josef Sniatecki »

Hallo an alle,

Ich habe mal ein kleines Tool zusammengebastelt, mit dem man Deklarationen für Funktionen per Knopfdurck generieren kann.

Ich denke mal, dass einige sich schon sowas programmiert haben, aber trotzdem gibt es noch Leute, die gerne runterladen als schreiben: :wink:
Download

Einbindung in die IDE:
Commandline: PB-Declarer.exe
Arguments: "%SELECTION" "%TEMPFILE"

Am besten ein Shortcut zum Aufrufen erstellen (habe für mich Strg+D gewählt).

Benutzung:
Code-Abschnitt selektieren und dann das Tool aufrufen. Sofort danach könnt ihr durch Strg-V den generierten Code einfügen.

Beispiel:

Code: Alles auswählen

Procedure.i Test(a, b)
  Procedurereturn Bla() + a + b
EndProcedure
Procedure.i Test2(a, b, c) ;Ein Kommentar
  ProcedureReturn Bla() * a * b * c
EndProcedure

Procedure.i Bla()
  ProcedureReturn 123
EndProcedure
Ausgabe:

Code: Alles auswählen

Declare.i Test(a, b)
Declare.i Test2(a, b, c)

Declare.i Bla()
Bugs, Kommentare und Verbesserungsvorschläge sind erwünscht.

Viel Spaß damit
Gruß Josef
Zuletzt geändert von Josef Sniatecki am 08.11.2009 18:47, insgesamt 1-mal geändert.
PB 4.61 | Windows Vista - 32Bit
Homepage

"Wahrlich es ist nicht das Wissen, sondern das Lernen, nicht das Besitzen sondern das Erwerben, nicht das Dasein, sondern das Hinkommen, was den grössten Genuss gewährt." - Carl Friedrich Gauß
Benutzeravatar
Rings
Beiträge: 977
Registriert: 29.08.2004 08:48

Re: PB-Declarer

Beitrag von Rings »

Code: Alles auswählen

;**************************************************************
;     PB-Declarer
;
; Autor: Josef Sniatecki
; Date: 08.11.2009
;   Josef Sniatecki 2009 (c)
;**************************************************************



Global Parameter.s, FileName.s
Global File.i
Global LineStart.i, LineEnd.i

Global Index.i
Global Line.s, *Char.Character

Global Result.s



; Get informations form PureBasic:
Parameter = ProgramParameter()
FileName  = ProgramParameter()

; Get selection dimensions:
LineStart   = Val(StringField(Parameter, 1, "x")) - 1
LineEnd     = Val(StringField(Parameter, 3, "x")) - 1

; Open file:
File = ReadFile(#PB_Any, FileName)
If Not File
  MessageRequester("Error", "Can not read file: " + Chr(34) + FileName + Chr(34))
  End
EndIf


; Move to the start:
For Index = 1 To LineStart
  ReadString(File)
Next



Index = LineStart
While Index <= LineEnd
  Line = Trim(ReadString(File))
  If Line = ""
    Result + Chr(13) + Chr(10)
  ElseIf LCase(Left(Line, 9)) = "procedure" And Not LCase(Left(Line, 15)) = "procedurereturn"
    *Char = @Line + 9
    Repeat
      Select *Char\c
        Case 0, 13, 10
          Break
        Case '"'
          Repeat
            *Char + 1
          Until *Char\c = '"'
        Case ';'
          Break
      EndSelect
      *Char + 1
    ForEver
    If Result
      Result + Chr(13) + Chr(10)
    EndIf
    Result + "Declare" + PeekS(@Line + 9, *Char - (@Line + 9))
    Repeat
      Index + 1
    Until Index > LineEnd Or LCase(Left(Trim(ReadString(File)), 12)) = "endprocedure"
  EndIf
  Index + 1
Wend



SetClipboardText(Result)
End
Rings hat geschrieben:ziert sich nich beim zitieren
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Re: PB-Declarer

Beitrag von ts-soft »

@Rings
danke, gute Idee

PS: das mit click here hab ich wohl übersehen, nachdem ich adblock plus ausgeschaltet habe,
fand ich dann einen download der mir prompt nen virus installieren wollte.
Ich werde es wohl nie verstehen warum ihr solche *****Upload-Portale nutzt, wo es hier doch
bessere Alternativen gibt /:->

Zum Tool:
Ich selber benötige nur selten Declares, aber dieses Tool ist mir zu umständlich, wenn ich
die Declare selber einfügen muß, kann ich auch den Procedure-Kopf kopieren. Ersparnis ist
mir zu wenig, als das ich dafür das Tool installiere.

Gruß
Thomas
Benutzeravatar
Josef Sniatecki
Beiträge: 657
Registriert: 02.06.2008 21:29
Kontaktdaten:

Re: PB-Declarer

Beitrag von Josef Sniatecki »

ts-soft hat geschrieben: PS: das mit click here hab ich wohl übersehen, nachdem ich adblock plus ausgeschaltet habe,
fand ich dann einen download der mir prompt nen virus installieren wollte.
Ich werde es wohl nie verstehen warum ihr solche *****Upload-Portale nutzt, wo es hier doch
bessere Alternativen gibt /:->
Wollte auch zuerst File-Upload nehmen, aber irgendwie ist er mir ständig mit einem Error abgesprungen. :wink:

Zum Kopieren der Headers:
Ich finde das ehrlich gesagt anstrengend, wenn ich mehr als 50 Prozeduren habe, die alle früher verwendet werden. Beim Programmieren bin ich halt ein wenig systematisch und deklariere deswegen jede Funktion, egal ob es nötig ist oder nicht.

Ist halt ne Geschmackssache.

Gruß Josef

PS: Nun habe ich den Link auf File-Upload gewechselt. (denke mal, dass das in Ordnung ist)
PB 4.61 | Windows Vista - 32Bit
Homepage

"Wahrlich es ist nicht das Wissen, sondern das Lernen, nicht das Besitzen sondern das Erwerben, nicht das Dasein, sondern das Hinkommen, was den grössten Genuss gewährt." - Carl Friedrich Gauß
Benutzeravatar
TomS
Beiträge: 1508
Registriert: 23.12.2005 12:41
Wohnort: München

Re: PB-Declarer

Beitrag von TomS »

Josef Sniatecki hat geschrieben:Wollte auch zuerst File-Upload nehmen, aber irgendwie ist er mir ständig mit einem Error abgesprungen. :wink:
Was? :freak:

http://em.q-soft.ch/

Langsam müssten's doch alle kapiert haben.
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Re: PB-Declarer

Beitrag von ts-soft »

Josef Sniatecki hat geschrieben:Beim Programmieren bin ich halt ein wenig systematisch
Ich auch, fange unten mit Main() an und füge dadrüber die Prozeduren ein, so ist ein
Declare eigentlich niemals nötig, es sei denn ich verwende Include-Dateien :mrgreen:

PS: so ein ähnliches Tool hab ich hier auch schon irgendwo mal veröffentlicht, fügt die
Declares aber automatisch am Anfangs des Codes ein und berücksichtigt Includes.
Mangels eigenen Interesse und Feedback ist es in Vergessenheit geraten.

Gruß
Thomas

// edit
TomS hat geschrieben:
Josef Sniatecki hat geschrieben:Wollte auch zuerst File-Upload nehmen, aber irgendwie ist er mir ständig mit einem Error abgesprungen. :wink:
Was? :freak:

http://em.q-soft.ch/

Langsam müssten's doch alle kapiert haben.
Der scheint aber gesperrt zu sein, lediglich Bilddateien lassen sich hochladen, ansonsten
hätte ich den auch empfohlen.
Benutzeravatar
TomS
Beiträge: 1508
Registriert: 23.12.2005 12:41
Wohnort: München

Re: PB-Declarer

Beitrag von TomS »

Sorry. Hab ich nicht gesehen. :oops:

Naja. Mein alltime Favorit ist immer noch ZippyShare.com ;)

Immernoch 1000 mal besser als die meisten anderen (vor allem RapidShare und Hoster, wo man über eine Minute warten muss oO)
Benutzeravatar
Josef Sniatecki
Beiträge: 657
Registriert: 02.06.2008 21:29
Kontaktdaten:

Re: PB-Declarer

Beitrag von Josef Sniatecki »

ts-soft hat geschrieben:
Josef Sniatecki hat geschrieben:Beim Programmieren bin ich halt ein wenig systematisch
Ich auch, fange unten mit Main() an und füge dadrüber die Prozeduren ein, so ist ein
Declare eigentlich niemals nötig, es sei denn ich verwende Include-Dateien :mrgreen:
hätte ich den auch empfohlen.
Und genau das trifft bei mir zu :mrgreen:
Mit mehr als 10 Includes kann das irgendwann sehr häuprig werden. Wo du gerade von deinem Tool sprichst, dass auch Includes berücksichtigt: Konnte es auch diese hier beachten?:

Code: Alles auswählen

IncludeFile #PB_Compiler_FilePath + "Blabla.txt"
;Oder auch:
IncludeFile EinMakro(Blabla)
Ich glaube, du weißt was ich damit meine :wink:
Habe mal daran gedacht, einen Präprozessor zu programmieren, der die Kleinarbeiten erledigt (z.B. Declares). Nur leider verarbeitet der PB-Compiler gleich alles beim ersten Durchlauf, wodurch ein guter Präprozessor nur mit einem eingebauten PB-Interpreter funktionieren würde.
PB 4.61 | Windows Vista - 32Bit
Homepage

"Wahrlich es ist nicht das Wissen, sondern das Lernen, nicht das Besitzen sondern das Erwerben, nicht das Dasein, sondern das Hinkommen, was den grössten Genuss gewährt." - Carl Friedrich Gauß
Antworten