Deutsch
Forum

Zugriff auf Textdatei

 

Peter
Gückstock
Hallo,
wieder eine Anfängerfrage: Ich habe in meinem Profanprogramm eine TXT-Datei geladen, die ich vorher mit dem Windows-Editor (leer) gespeichert habe. In diese Datei habe ich innerhalb des Profanprogramms Strings geschrieben, die ich in Profan auch wieder laden und mit Print sichtbar machen kann. Öffne ich aber die TXT-Datei mit dem Windows-Editor, ist diese Datei leer. Diese Datei soll nämlich später über Windowsprogramme zu lesen und zu drucken sein.
Ist das so eigentlich möglich?

Ich verwende Profan 6.6

Gruß Peter
 
Peter G.
Win XP, XProfan10
24.02.2007  
 




Jac
de
Lad
Speicherst du sie in Profan auch ab?
 
Profan² 2.6 bis XProfan 11.1+XPSE+XPIA+XPRR (und irgendwann XIDE)
Core2Duo E8500/T2250, 8192/1024 MB, Radeon HD4850/Radeon XPress 1250, Vista64/XP
24.02.2007  
 




Peter
Gückstock
Muß das Abspeichern im Programmcode erfolgen? Ich habe dafür keinen Befehl gefunden. Ich dachte , dass mit dem Speichern im Profaneditor und anschließendem Schnellstart aus dem Editor heraus die Daten in diese Datei geschrieben werden.
 
Peter G.
Win XP, XProfan10
24.02.2007  
 



@Hallo Peter
KompilierenMarkierenSeparieren
DECLARE datei$,edit&
DECLARE nr%,max%

PROC SPEICHERN

    ASSIGN #1,datei$
    REWRITE #1
    Nr% = 0
    Max% = GetLineCount(edit&)

    WhileNot Nr% > Max%

        Print #1,GetLine$(edit&,Nr%)
        Inc Nr%

    ENDWHILE

    CLOSE #1

ENDPROC


Mit dieser kleinen Procedur speichere ich immer alle Eingaben in eine Text-Datei ab und es funktioniert perfekt
 
24.02.2007  
 




Jac
de
Lad
Genau!
 
Profan² 2.6 bis XProfan 11.1+XPSE+XPIA+XPRR (und irgendwann XIDE)
Core2Duo E8500/T2250, 8192/1024 MB, Radeon HD4850/Radeon XPress 1250, Vista64/XP
24.02.2007  
 




Peter
Gückstock
Vielen Dank Horst,
ich habe Deine Proc für meine Listbox angepaßt (getcount und getstring$).
Es funktioniert, aber in der Textdatei erhalte ich immer nur den letzten Satz aus der Listbox, In der Schleife müßten doch alle Sätze bis zum Wert, der von getcount zurückgegeben wird, eingelesen werden.
Und noch zum Verständnis, woher weiß Profan jetzt, dass mit Datei$ meine TXT Datei gemeint ist?

Sorry für die Nerverei, aber ich bin immer erst froh, wenn ich alles verstanden habe.
 
Peter G.
Win XP, XProfan10
24.02.2007  
 




Jörg
Sellmeyer
Hi Peter,
Die Variable Datei$ mußt Du natürlich mit dem Namen Deiner Txt-Datei füttern.
Let Datei$=C:\MeinProgramm\MeineDatei.txt

Poste doch einfach mal Deinen Code, dann kann man besser sehen, wos hakt.

Gruß
Jörg
 
Windows XP SP2 XProfan X4
... und hier mal was ganz anderes als Profan ...
24.02.2007  
 



@Peter

Jörg hat Recht - ein kleines Beispiel wäre hilfreich !
 
24.02.2007  
 




Peter
Gückstock
Hier ein Teil aus dem Listing

Hier erstmal die Proc zum Schreiben den Kassenbon in eine TXT zum späteren
Kundenausdruck
KompilierenMarkierenSeparieren
-------Drucken--------

proc Bon_Druck

    let datei$=C:Eigene DateienProfanProjekteKassenbuchKassenbon.txt
    Assign #2,Datei$
    rewrite #2
    Nr%=0
    Max%=GetCount(BBox&)
    print max%

    WhileNot Nr%>Max%

        Print #2,GetString$(BBox&,Nr%)
        Inc Nr%

    endwhile

    Close #2

endproc

im folgenden Teil werden aus der mit einer DBF Datei gefüllten Listbox mehrere gewünschte Zeilen in eine andere Listbox übernommen. (soll Kassenbon sein)
Jede Zeile, die in den Kassenbon übernommen wurde, soll automatisch in eine TXT geschrieben werden, um zum Abschluß alle während des Tages in den Kassenbon übernommenen Sätze zur Auswertung bzw. zur Inventur zur Verfügung zu haben. (vielleicht bekomme ich daraus eine csv Datei hin )
Zusätzlich soll aber der gesamte Inhalt der Kassenbon-Listbox ineine zweite TXT Datei geschrieben werden, um diesen Kassenbon für den Kunden ausdrucken zu können

If @GetFocus(zumBon%)

    Long Lv_Item#,8 = 0  auf erste Spalte setzen
    GetSelectedItems 0
    Hole_Zeile 0
    Let Feld$ = @$(0)   zusammengesetzter Text der Zeile
    Let Feld$ = @Trim$(@Substr$(Feld$,1,	))+   +
    @Trim$(@Substr$(Feld$,2,	))+   +
    @Trim$(@Substr$(Feld$,3,	))+   +
    Zl$ = Zeile-+@Format$(00,(Zl&+1))  übersetze auch noch die Zeilennummer
    LONG Tb#,0 =-5
    LONG Tb#,4 =-60
    Long Tb#,8 =5
    Posten$=str$(Posten!)
    @SendMessage(BBox&,$0192,2,Tb#)  Parameter 3 gibt die Anzahl der Tabstopps an !!!
    Epreis$=@Substr$(Feld$,3,)
    Artikel$=@Substr$(Feld$,2,)
    Posten$=@substr$(Feld$,4,)
    Menge%=0
    Menge%=@Input$(Anzahl:,ausgewählter Artikel,Menge%)
    Epreis!=@val(EPreis$)
    Posten!=Menge%*EPreis!
    Decimals 2
    Summe!=Summe!+Posten!
    Decimals 2
    Bon$=str$(Menge%),+chr$($9)+Artikel$+chr$($9)+EPreis$++chr$($9)+str$(Posten!)+€
    @len(Artikel$)=20
    Addstring(Bbox&,str$(Menge%)+chr$($9)+Artikel$+chr$($9)+EPreis$++chr$($9)+str$(Posten!)+)
    Addstring(UBox&,str$(Summe!))

EndIf

----Fallunterscheidung durch Bediener------

if getfocus(Kassieren%)

    Rückgeld
    summe

endif

if getfocus(nächsterKd%)

    ergebn%=Messagebox(Kassierung schon durchgeführt?,ACHTUNG,308)

    if @equ(ergebn%,6)

        nächster_Kunde
        else getfocus(dlg%)

    endif

endif

if getfocus(Eintrag%)

    declare Line$,Line%,Teil$,DelPreis!,Storno$
    Line%=GetCurSel(BBox&)
    Line$=@GetString$(BBox&,Line%)
    Teil$=SubStr$(Line$,4,	)
    DelPreis!=val(Teil$)
    decimals 2
    Summe!=Summe!-DelPreis!
 
Peter G.
Win XP, XProfan10
24.02.2007  
 




Peter
Gückstock
Das mit dem Schreiben des Listboxinhalts in die TXT habe ich hinbekommen.
Bleibt nur noch das die Frage, wie kann ich Daten anhängen, ohne die TXT vorher zu löschen? Append funktioniert nicht.
 
Peter G.
Win XP, XProfan10
24.02.2007  
 



Du musst den Text vorher auslesen und nach dem neuen Zusatz wieder einlesen und speichern. - Hier ist ein kleines Editor-Programm - das kannst Du für Deine Zwecke bestimmt umschreiben - viel Erfolg
KompilierenMarkierenSeparieren
DECLARE pfad$,datei$,text$
pfad$=GETDIR$(@)
print pfad$
datei$=pfad$+\beispiel.txt Hier Dateinamen angeben
DECLARE edit&
DECLARE nr%,max%,ende%,EE%,save%
DECLARE datei_groesse%
DECLARE bereich#
EE%=0
----------------------------------------------------

PROC SPEICHERN

    ASSIGN #1,datei$
    REWRITE #1
    Nr% = 0
    Max% = GetLineCount(edit&)

    WhileNot Nr% > Max%

        Print #1,GetLine$(edit&,Nr%)
        Inc Nr%

    ENDWHILE

    CLOSE #1

ENDPROC

---------------------------------------------------

PROC EDITOR

    edit&=CREATE(MULTIEDIT,%HWND,text$,10,50,615,-370)
    datei_groesse%=FILESIZE(datei$) Grösse der Datei
    DIM Bereich#,datei_groesse%+5 Dimensionieren + 5 Byte
    READTEXT Bereich#,datei$
    SENDMESSAGE(edit&,$000C,0,Bereich#)
    SENDMESSAGE(edit&,$00B1,datei_groesse%,-1)
    SENDMESSAGE(notiz_edit&,$00C5,2500,0) Der dritte Parameter gibt die Zeichenanzahl an
    DISPOSE bereich#

ENDPROC

################## Programm-Anfang

IFNOT FILEEXISTS(datei$) wenn keine Datei da ist, wird eine erstellt

    ASSIGN #1,datei$
    REWRITE #1
    CLOSE #1

ENDIF

-----------------------------------------------------
CLS
ende%=CREATE(BUTTON,%HWND,Beenden,10,5,100,35)
save%=CREATE(BUTTON,%HWND,Speichern,200,5,100,35)
EDITOR
SetFocus(edit&)

WHILENOT EE%

    WAITINPUT
    Case GETFOCUS(ende%):END
    Case GETFOCUS(save%):SPEICHERN

ENDWHILE

END
 
24.02.2007  
 




Jörg
Sellmeyer
Hallo Peter,
Warum sollte Append nichtfunktionieren? Du mußt Deinen Text oben entsprechend annpassen. Also:
KompilierenMarkierenSeparieren
[offtopic]Hallo Horst,
Schon wieder zurück von der Reparatur oder hast Dus verschoben?[/offtopic]
 
Windows XP SP2 XProfan X4
... und hier mal was ganz anderes als Profan ...
24.02.2007  
 




Antworten


Thementitel, max. 100 Zeichen.
 

Systemprofile:

Kein Systemprofil angelegt. [anlegen]

XProfan:

 Beitrag  Schrift  Smilies  ▼ 

Bitte anmelden um einen Beitrag zu verfassen.
 

Themenoptionen

6.188 Betrachtungen

Unbenanntvor 0 min.
RudiB.08.03.2021
Georg Teles19.03.2016
Ernstmeinhard28.01.2016
Andreas Koch23.05.2013
Mehr...

Themeninformationen



Admins  |  AGB  |  Anwendungen  |  Autoren  |  Chat  |  Datenschutz  |  Download  |  Eingangshalle  |  Hilfe  |  Händlerportal  |  Impressum  |  Mart  |  Schnittstellen  |  SDK  |  Services  |  Spiele  |  Suche  |  Support

Ein Projekt aller XProfaner, die es gibt!


Mein XProfan
Private Nachrichten
Eigenes Ablageforum
Themen-Merkliste
Eigene Beiträge
Eigene Themen
Zwischenablage
Abmelden
 Deutsch English Français Español Italia
Übersetzungen

Datenschutz


Wir verwenden Cookies nur als Session-Cookies wegen der technischen Notwendigkeit und bei uns gibt es keine Cookies von Drittanbietern.

Wenn du hier auf unsere Webseite klickst oder navigierst, stimmst du unserer Erfassung von Informationen in unseren Cookies auf XProfan.Net zu.

Weitere Informationen zu unseren Cookies und dazu, wie du die Kontrolle darüber behältst, findest du in unserer nachfolgenden Datenschutzerklärung.


einverstandenDatenschutzerklärung
Ich möchte keinen Cookie