Quellcode von PB IDE aus drucken

Hier könnt Ihr gute, von Euch geschriebene Codes posten. Sie müssen auf jeden Fall funktionieren und sollten möglichst effizient, elegant und beispielhaft oder einfach nur cool sein.
Benutzeravatar
hjbremer
Beiträge: 822
Registriert: 27.02.2006 22:30
Computerausstattung: von gestern
Wohnort: Neumünster

Quellcode von PB IDE aus drucken

Beitrag von hjbremer »

Manchmal möchte ich einen Code oder Teile davon ausdrucken. Habe aber keine Lust mit Markieren, Kopieren und dann via Notepad zu drucken.

Unten stehenden Code als Werkzeug einbinden und man kann einen ganzen Code oder einen markierten Teil einfach ausdrucken. Purebasic machts möglich.

Man kann natürlich auch ein anderes Textprogramm als Notepad zum Drucken angeben. z.B. Write.exe
Schriftart und Seitenränder sind in Notepad vorher anzugeben. Einfach aufrufen, ändern, Beenden.

Code: Alles auswählen

CompilerIf #PB_Compiler_Debugger
   
   ;zum Testen
   para_dateiname$ = "c:\bremer\kto\kto.pb" 
   para_selection$ = "10x2x19x5"
   
CompilerElse
   
   para_dateiname$ = ProgramParameter()
   para_selection$ = ProgramParameter()
   
   ;wurde Datei noch nicht gepeichert, ist %FILE leer und die Parameter 
   ;verschieben sich, so das para_selection$ ein Leerstring ist.
   If para_selection$ = ""
      MessageRequester("", "Datei noch nicht gespeichert")
      End
   EndIf
   
CompilerEndIf

path$ = GetEnvironmentVariable("TEMP")
print_dateiname$ = path$ + "\mySelection.txt"

row1$ = StringField(para_selection$, 1, "x")
col1$ = StringField(para_selection$, 2, "x")
row2$ = StringField(para_selection$, 3, "x")
col2$ = StringField(para_selection$, 4, "x")

If Bool(row1$ = row2$ And col1$ = col2$)
   selected = #False
Else
   selected = #True
EndIf   

If selected = #True
   
   vonzeile = Val(row1$)
   biszeile = Val(row2$)
   
   dnr = ReadFile(#PB_Any, para_dateiname$)
   znr = CreateFile(#PB_Any, print_dateiname$)
   If dnr
      If znr
         
         WriteStringN(znr, "")
         WriteStringN(znr, #PB_Compiler_Filename + " von Zeile: " + row1$ + " bis " + row2$)
         WriteStringN(znr, "")
         
         While Eof(dnr) = 0
            x$ = ReadString(dnr)
            ze + 1
            If Bool(ze >= vonzeile And ze <= biszeile)
               WriteStringN(znr, RSet(Str(ze), 5) + " " + x$)
            EndIf            
         Wend
         
         CloseFile(znr)
      EndIf
      CloseFile(dnr)
   EndIf
   
Else
   
   print_dateiname$ = para_dateiname$
   
EndIf

ShellExecute_(#Null, "open", "notepad", "/P " + print_dateiname$, #Null, #SW_HIDE)
;oder
;RunProgram("Notepad", "/P " + print_dateiname$, "")


Programm als EXE compilieren. Ich habe es im Purebasic Verzeichnis stehen mit Namen pbprint.exe

Einbinden:
Folgendes Beispiel mit PB 5.21, ältere Versionen können abweichen

Werkzeuge/Werkzeuge konfigurieren aufrufen
Neu wählen

In Kommandozeile
Programmname (incl.kompletter Pfad) eingeben oder Button durchsuchen drücken
z.B. C:\Bremer\PureBasic521\pbprint.exe

In Argumente
%FILE %SELECTION

Arbeitsverzeichnis
nix eingeben

Name
z.B. PbPrint

Ereignis
Menu oder Tastenkürzel

Tastenkürzel
drücken sie z.B. STRG + P

ok drücken, ok drücken und FERTIG !

Will man für das Werkzeug ein Symbol in der oberen Symbolleiste haben

Datei/Einstellungen
Symbolleiste
Einstellungen für den Eintrag: Combobox steht bei Trennzeichen, Button hinzufügen drücken
ein Trennzeichen wird ans Ende der Liste gesetzt
Dann Combobox drücken und Symbol-Datei wählen
Rechts daneben Durchsuchen Button drücken (...) und eine passende ico oder png Datei wählen
linke Combobox darunter Werkzeug starten wählen
rechte Combobox PbPrint wählen (wie auch immer ihr es genannt habt)
Hinzufügen drücken und übernehmen, das wars
Zuletzt geändert von hjbremer am 06.03.2014 00:07, insgesamt 1-mal geändert.
Purebasic 5.70 x86 5.72 X 64 - Windows 10

Der Computer hat dem menschlichen Gehirn gegenüber nur einen Vorteil: Er wird benutzt
grüße hjbremer
Benutzeravatar
RSBasic
Admin
Beiträge: 8022
Registriert: 05.10.2006 18:55
Wohnort: Gernsbach
Kontaktdaten:

Re: Quellcode von PB IDE aus drucken

Beitrag von RSBasic »

Gute Idee. :allright:
Aus privaten Gründen habe ich leider nicht mehr so viel Zeit wie früher. Bitte habt Verständnis dafür.
Bild
Bild
GPI
Beiträge: 1511
Registriert: 29.08.2004 13:18
Kontaktdaten:

Re: Quellcode von PB IDE aus drucken

Beitrag von GPI »

Ich würde ein paar kleinigkeiten ändern:

Code: Alles auswählen

path$ = GetTemporaryDirectory()
print_dateiname$ = path$ + "mySelection.txt"
Besser als eine Enviroment-Variable Abzufragen, die es nur in Windows gibt.

Code: Alles auswählen

RunProgram("Notepad", "/P " +Chr(34)+ print_dateiname$+Chr(34), "",#PB_Program_Wait)
DeleteFile(print_dateiname$)
Damit wird die Datei auch wieder gelöscht. Zudem fängt es den Fall ab, das ein Leerzeichen in Temp-Pfad ist.

und wichtig als Parameter

Code: Alles auswählen

"%FILE" "%SELECTION"
Falls ein Leerzeichen in Pfad ist, sonst gibts Probleme

wenn jetzt noch wer die Druckbefehle für MAC und LINUX umsetzt, kann es jeder nutzen :)

ahcja, taucht unter IDE_Tools\PrintSelection.pb in CodeArchiv auf :)
CodeArchiv Rebirth: Deutsches Forum Github Hilfe ist immer gern gesehen!
Benutzeravatar
SDL
Beiträge: 65
Registriert: 15.09.2006 05:19
Computerausstattung: MSI 990FXA-GD80
AMD FX-8350(3,1GHz) 4-4,4GHz
Corsair Dominator Platinum 8GB 2133 (2240)
2 Nvidia GeForce GTX 550Ti
Xilence XQ semipassives Netzteil 750Watt
SATA III WDC WD10 1TB
SATA III SSD Toshiba 128 GB
SATA III SSD Samsung 840 EVO 250 GB
eSATA WDC WD SE16 500 GB

Wassergekühlt

Win 7 pro
Leistungsindex 7,8
Wohnort: Hansestadt Stendal

Re: Quellcode von PB IDE aus drucken

Beitrag von SDL »

Mit dem Löschen ist es so eine Sache :mrgreen:
Ich schlage hier mal auf die schnelle folgende Änderung vor:

Code: Alles auswählen

;ShellExecute_(#Null, "open", "notepad", "/P " + print_dateiname$, #Null, #SW_HIDE)
;oder
; RunProgram("Notepad", "/P " +Chr(34)+ print_dateiname$+Chr(34), "",#PB_Program_Wait|#PB_Program_Hide)

RunProgram("C:\Program Files (x86)\UltraEdit\Uedit32.exe", "/P " +Chr(34)+ print_dateiname$+Chr(34), "",#PB_Program_Wait|#PB_Program_Hide)

DeleteFile(GetTemporaryDirectory()+print_dateiname$)

; IDE Options = PureBasic 5.42 LTS (Windows - x64)
bei mir war einfach mal der Quelltext das Opfer.
An sonsten :allright:
Zu meiner Schulzeit war die Bildung kostenlos, für einige aber Umsonst.
GPI
Beiträge: 1511
Registriert: 29.08.2004 13:18
Kontaktdaten:

Re: Quellcode von PB IDE aus drucken

Beitrag von GPI »

äh, warum nochmals das Temp-Verzeichnis angeben?
path$ = GetTemporaryDirectory()
print_dateiname$ = path$ + "mySelection.txt"

verwendet doch schon den Temp-Pfad, oder übersehe ich was. Ultraedit könnte ansonsten auch die Datei nicht öffnen...
CodeArchiv Rebirth: Deutsches Forum Github Hilfe ist immer gern gesehen!
Benutzeravatar
SDL
Beiträge: 65
Registriert: 15.09.2006 05:19
Computerausstattung: MSI 990FXA-GD80
AMD FX-8350(3,1GHz) 4-4,4GHz
Corsair Dominator Platinum 8GB 2133 (2240)
2 Nvidia GeForce GTX 550Ti
Xilence XQ semipassives Netzteil 750Watt
SATA III WDC WD10 1TB
SATA III SSD Toshiba 128 GB
SATA III SSD Samsung 840 EVO 250 GB
eSATA WDC WD SE16 500 GB

Wassergekühlt

Win 7 pro
Leistungsindex 7,8
Wohnort: Hansestadt Stendal

Re: Quellcode von PB IDE aus drucken

Beitrag von SDL »

GPI hat geschrieben:äh, warum nochmals das Temp-Verzeichnis angeben?
path$ = GetTemporaryDirectory()
print_dateiname$ = path$ + "mySelection.txt"

verwendet doch schon den Temp-Pfad, oder übersehe ich was. Ultraedit könnte ansonsten auch die Datei nicht öffnen...
So hab ich das auch gesehen, aber beim Praxisversuch wurde bei mir der Quelltext im Projektordner gelöscht. Und bei Ausschnittdruck blieb die Tempdatei in Temp liegen. Die "Änderung" war ein "Schnellschuß" um das Problem zu lösen. :oops:

Muss mir mal mehr Zeit nehmen. (von hier: IDE_Tools\PrintSelection.pb in CodeArchiv)
Zu meiner Schulzeit war die Bildung kostenlos, für einige aber Umsonst.
Benutzeravatar
SDL
Beiträge: 65
Registriert: 15.09.2006 05:19
Computerausstattung: MSI 990FXA-GD80
AMD FX-8350(3,1GHz) 4-4,4GHz
Corsair Dominator Platinum 8GB 2133 (2240)
2 Nvidia GeForce GTX 550Ti
Xilence XQ semipassives Netzteil 750Watt
SATA III WDC WD10 1TB
SATA III SSD Toshiba 128 GB
SATA III SSD Samsung 840 EVO 250 GB
eSATA WDC WD SE16 500 GB

Wassergekühlt

Win 7 pro
Leistungsindex 7,8
Wohnort: Hansestadt Stendal

Re: Quellcode von PB IDE aus drucken

Beitrag von SDL »

Noch einmal:

Code: Alles auswählen

..........
 para_dateiname$ = ProgramParameter() ;OK
 para_selection$ = ProgramParameter()
.........
path$ = GetTemporaryDirectory()
print_dateiname$ = path$ + "mySelection.txt" ;OK
...............
Else

  print_dateiname$ = para_dateiname$ ; nicht mehr OK
  
EndIf
.............
DeleteFile(print_dateiname$) ; ??
Sieh noch einmal drüber, nicht das ich falsch liege.
Zu meiner Schulzeit war die Bildung kostenlos, für einige aber Umsonst.
GPI
Beiträge: 1511
Registriert: 29.08.2004 13:18
Kontaktdaten:

Re: Quellcode von PB IDE aus drucken

Beitrag von GPI »

hast recht. Wenn man nichts auswählt, wird gelöscht.

Code: Alles auswählen

;    Description: Print selected sourcecode
;Parameter (IDE): "%FILE" "%SELECTION"
;         Author: hjbremer
;           Date: 2014-03-05
;     PB-Version: 5.42
;             OS: Windows
;  English-Forum: 
;   French-Forum: 
;   German-Forum: http://www.purebasic.fr/german/viewtopic.php?f=8&t=27810
; -----------------------------------------------------------------------------

CompilerIf #PB_Compiler_OS<>#PB_OS_Windows
  CompilerError "Windows only!"
CompilerEndIf

CompilerIf #PB_Compiler_Debugger
  
  ;zum Testen
  para_dateiname$ = "c:\bremer\kto\kto.pb"
  para_selection$ = "10x2x19x5"
  
CompilerElse
  
  para_dateiname$ = ProgramParameter()
  para_selection$ = ProgramParameter()
  
  ;wurde Datei noch nicht gepeichert, ist %FILE leer und die Parameter
  ;verschieben sich, so das para_selection$ ein Leerstring ist.
  If para_selection$ = ""
    MessageRequester("", "File must be saved!")
    End
  EndIf
  
CompilerEndIf

path$ = GetTemporaryDirectory()
temp_dateiname$ = path$ + "mySelection.txt"
print_dateiname$ = path$ + "mySelection.txt"

row1$ = StringField(para_selection$, 1, "x")
col1$ = StringField(para_selection$, 2, "x")
row2$ = StringField(para_selection$, 3, "x")
col2$ = StringField(para_selection$, 4, "x")

If Bool(row1$ = row2$ And col1$ = col2$)
  selected = #False
Else
  selected = #True
EndIf   

If selected = #True
  
  vonzeile = Val(row1$)
  biszeile = Val(row2$)
  
  dnr = ReadFile(#PB_Any, para_dateiname$)
  znr = CreateFile(#PB_Any, print_dateiname$)
  If dnr
    If znr
      
      WriteStringN(znr, "")
      WriteStringN(znr, #PB_Compiler_Filename + " from line " + row1$ + " to " + row2$)
      WriteStringN(znr, "")
      
      While Eof(dnr) = 0
        x$ = ReadString(dnr)
        ze + 1
        If Bool(ze >= vonzeile And ze <= biszeile)
          WriteStringN(znr, RSet(Str(ze), 5) + " " + x$)
        EndIf           
      Wend
      
      CloseFile(znr)
    EndIf
    CloseFile(dnr)
  EndIf
  
Else
  
  print_dateiname$ = para_dateiname$
  
EndIf

;ShellExecute_(#Null, "open", "notepad", "/P " + print_dateiname$, #Null, #SW_HIDE)
;oder
RunProgram("Notepad", "/P " +Chr(34)+ print_dateiname$+Chr(34), "",#PB_Program_Wait|#PB_Program_Hide)
DeleteFile(temp_dateiname$)
ich hab jetzt eine temp_dateiname$ hinzugefügt, um das Problem zu umgehen.
CodeArchiv Rebirth: Deutsches Forum Github Hilfe ist immer gern gesehen!
Benutzeravatar
SDL
Beiträge: 65
Registriert: 15.09.2006 05:19
Computerausstattung: MSI 990FXA-GD80
AMD FX-8350(3,1GHz) 4-4,4GHz
Corsair Dominator Platinum 8GB 2133 (2240)
2 Nvidia GeForce GTX 550Ti
Xilence XQ semipassives Netzteil 750Watt
SATA III WDC WD10 1TB
SATA III SSD Toshiba 128 GB
SATA III SSD Samsung 840 EVO 250 GB
eSATA WDC WD SE16 500 GB

Wassergekühlt

Win 7 pro
Leistungsindex 7,8
Wohnort: Hansestadt Stendal

Re: Quellcode von PB IDE aus drucken

Beitrag von SDL »

:bounce: Danke.
Ich hatte den gleichen Gedanken -

Code: Alles auswählen

backup_dateiname$ = print_dateiname$
.... , nur warst Du schneller.
Zu meiner Schulzeit war die Bildung kostenlos, für einige aber Umsonst.
Benutzeravatar
SDL
Beiträge: 65
Registriert: 15.09.2006 05:19
Computerausstattung: MSI 990FXA-GD80
AMD FX-8350(3,1GHz) 4-4,4GHz
Corsair Dominator Platinum 8GB 2133 (2240)
2 Nvidia GeForce GTX 550Ti
Xilence XQ semipassives Netzteil 750Watt
SATA III WDC WD10 1TB
SATA III SSD Toshiba 128 GB
SATA III SSD Samsung 840 EVO 250 GB
eSATA WDC WD SE16 500 GB

Wassergekühlt

Win 7 pro
Leistungsindex 7,8
Wohnort: Hansestadt Stendal

Re: Quellcode von PB IDE aus drucken

Beitrag von SDL »

Hier mal meine Idee : hjbremer "Danke für die Grundlagen"

Code: Alles auswählen

;
; Description: Print selected sourcecode
;    Parameter (IDE): "%FILE" "%SELECTION"
;         Author: hjbremer  "Danke für die Grundlagen"
;           Date: 2014-03-05
;     PB-Version: 5.42
;             OS: Windows
;  English-Forum: 
;   French-Forum: 
;   German-Forum: http://www.purebasic.fr/german/viewtopic.php?f=8&t=27810
; -----------------------------------------------------------------------------

EnableExplicit

; #True = 1 / #False = 0

Global.s para_dateiname$, para_selection$,row1$,row2$,x$,col1$,col2$,path$, print_dateiname$
Global vonzeile ; Markierter Quelltext von .....
Global biszeile ; bis
Global ze.u     ; Zeilennummer 
Global znr      ; Zieldatei
Global dnr      ; Quelldatei
Global Leerzeichen ; Anzahl der Einrückung
Global ZeilenEOF   ; Zeilenumbruch für zu langen String
Global selected    ; Auswahlhilfe True/False
Global selected_z  ; Zähler


#AnzahlD = 99     ; Anzahl der möglichen Druckzeichen ohne Zeilennummer
                  ; Ultraedit: linker Rand 25/ rechter Rand 10 DinA4
                  ; Lucida Console 8

#Leerzeichen = " " ; Zeilenumbruchbedingungen:
#Komma = ","
#Semi = ";"
#_Or = "|"

Declare _Leerzeichen()          ; Sucht Leerzeichen am Anfang des Strings (Einrückung)
Declare _ZeilenEOF()            ; Sucht Trennmöglichkeit im zu langen String
Declare _Write_StringN ()       ; Zeilennummer + String bei kleiner Stringlänge
Declare _Write_StringN_l()      ; Zeilennummer + Teil-string 
Declare _Write_StringN_ol()     ; Einrückung + Teilstring
Declare _Write_StringN_oleof()  ; Einrückung + Reststring
Declare _String_Formatieren()   ; String zerlegen wenn nötig

;******************************************************************************

CompilerIf #PB_Compiler_OS<>#PB_OS_Windows
  CompilerError "Windows only!"
CompilerEndIf

CompilerIf #PB_Compiler_Debugger
  
  ;zum Testen
  para_dateiname$ = "c:\bremer\kto\kto.pb"
  para_selection$ = "10x2x19x5"
  
CompilerElse
  
  para_dateiname$ = ProgramParameter() ;Ermittelt den nächsten Parameter-String, der dem Executable beim Start übergeben wurde
  para_selection$ = ProgramParameter()
  
  ;wurde Datei noch nicht gepeichert, ist %FILE leer und die Parameter
  ;verschieben sich, so das para_selection$ ein Leerstring ist.
  If para_selection$ = ""
    MessageRequester("", "File bitte speichern!")
    End
  EndIf
  
CompilerEndIf

path$ = GetTemporaryDirectory() ; gibt den Namen des temporären Verzeichnisses ("Temp") zurück. 

row1$ = StringField(para_selection$, 1, "x") ; Gibt den Inhalt des Stringfelds an der Stelle 'Index' zurück. 
col1$ = StringField(para_selection$, 2, "x") ; Zerlegt den String in Abschnitte - Trenner "x"
row2$ = StringField(para_selection$, 3, "x")
col2$ = StringField(para_selection$, 4, "x")

If Bool(row1$ = row2$ And col1$ = col2$)   ; Gibt es ein markierten Quelltext
  selected = #False
Else
  selected = #True
EndIf   


If selected = #True ; markierter Quelltext Ja
  
  print_dateiname$ = path$ + GetFilePart(para_dateiname$)+"_mySelection"
  
  vonzeile = Val(row1$)
  biszeile = Val(row2$)
  ze=0
  
  dnr = ReadFile(#PB_Any, para_dateiname$)    ; Öffnet eine existierende Datei ausschließlich für Lese-Operationen.
  znr = CreateFile(#PB_Any, print_dateiname$) ; Schreibt in Temp Datei "mySelection.txt"
  
  If dnr
    If znr
      
      WriteStringN(znr, #Leerzeichen)
      WriteStringN(znr, #PB_Compiler_Filename + " from line " + row1$ + " to " + row2$)
      WriteStringN(znr, #Leerzeichen)
      
      While Eof(dnr) = 0
        x$ = ReadString(dnr)       ; Liest einen String aus Datei 
        ze + 1
 
        If Bool(ze >= vonzeile And ze <= biszeile)
          
          _String_Formatieren()
          
        EndIf           
      Wend
      
      CloseFile(znr)
    EndIf
    CloseFile(dnr)
  EndIf
  
Else    ; kein Text markiert **************************************************
  
  print_dateiname$ = path$ + GetFilePart(para_dateiname$) 
  
  ze=0
  dnr = ReadFile(#PB_Any, para_dateiname$)    ; Öffnet eine existierende Datei ausschließlich für Lese-Operationen.
  znr = CreateFile(#PB_Any, print_dateiname$) ; Schreibt in Temp Datei 
  
  If dnr
    If znr
      
      WriteStringN(znr, para_dateiname$) 
      WriteStringN(znr, #Leerzeichen)
      
      While Eof(dnr) = 0
        x$ = ReadString(dnr)       ; Liest einen String aus Datei 
        ze + 1
        
        _String_Formatieren()  
        
      Wend
      
      CloseFile(znr)
    EndIf
    CloseFile(dnr)
  EndIf
  
EndIf

;RunProgram("Notepad", "/P " +Chr(34)+ print_dateiname$+Chr(34), "",#PB_Program_Wait|#PB_Program_Hide)

RunProgram("C:\Program Files (x86)\UltraEdit\Uedit32.exe", "/P " +Chr(34)+ print_dateiname$+Chr(34), "",#PB_Program_Wait|#PB_Program_Hide)

DeleteFile(print_dateiname$)

End
;******************************************************************************

Procedure _Leerzeichen() ; Anzahl der Leerzeichen links bestimmen
  
  Repeat
    Leerzeichen +1  
  Until Mid(x$,Leerzeichen,1) <> #Leerzeichen
  
EndProcedure

Procedure _ZeilenEOF() ; Stringlänge bestimmen für zeile
  
  Repeat 
    ZeilenEOF-1
  Until Mid(x$,ZeilenEOF,1) = #Leerzeichen Or Mid(x$,ZeilenEOF,1) = #Komma Or Mid(x$,ZeilenEOF,1) = #Semi Or Mid(x$,ZeilenEOF,1) = #_Or
  
EndProcedure

Procedure _Write_StringN () ; Drucken Zeilennummer + String
  
  WriteStringN(znr, RSet(Str(ze), 5) + #Leerzeichen + x$)
  
EndProcedure

Procedure _Write_StringN_l() ; Drucken Zeilennummer + String bei Überlänge
  
  WriteStringN(znr, RSet(Str(ze), 5) + #Leerzeichen + Mid(x$,1,ZeilenEOF))
  
EndProcedure

Procedure _Write_StringN_ol()
  
  WriteStringN(znr, RSet(#Leerzeichen,5 + Leerzeichen) + LTrim(Mid(x$,1,ZeilenEOF)))
  
EndProcedure


Procedure _Write_StringN_oleof() ; Drucken ohne Zeilennummer mit leerzeichen
  
  WriteStringN(znr, RSet(#Leerzeichen,5 + Leerzeichen) + LTrim(x$)) 
  
EndProcedure

Procedure _String_Formatieren()
  If ze = 1
    x$ =  Right(x$,Len(x$)-1) 
  EndIf
  
  If Len(x$) < #AnzahlD
    
    _Write_StringN()          ;WriteStringN(znr, RSet(Str(ze), 5) + #Leerzeichen + x$)
    
  Else
    selected_z = #False
    Leerzeichen = #False
    _Leerzeichen()
    
    While Len(x$) >= #AnzahlD
      
      ZeilenEOF = #AnzahlD
      _ZeilenEOF()
      
      If selected_z = #False
        _Write_StringN_l() ;WriteStringN(znr, RSet(Str(ze), 5) + #Leerzeichen + Mid(x$,1,ZeilenEOF)) 
        selected_z = #True
      Else
        _Write_StringN_ol() ; WriteStringN(znr, RSet(#Leerzeichen,5 + Leerzeichen) + LTrim(Mid(x$,1,ZeilenEOF)))
      EndIf 
      
      x$ = Right(x$,Len(x$)-ZeilenEOF)
      
    Wend
    If Len(x$)> #False
      _Write_StringN_oleof() ;WriteStringN(znr, RSet(#Leerzeichen,5 + Leerzeichen) + LTrim(x$)) 
    EndIf
    
  EndIf
EndProcedure 




; IDE Options = PureBasic 5.42 LTS (Windows - x64)
; EnableUnicode
; EnableXP
Zu meiner Schulzeit war die Bildung kostenlos, für einige aber Umsonst.
Antworten