| |
|
|
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 |
|
|
| |
|
|
|
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. |
|
|
| |
|
|
|
| @Hallo Peter KompilierenMarkierenSeparieren Mit dieser kleinen Procedur speichere ich immer alle Eingaben in eine Text-Datei ab und es funktioniert perfekt |
|
|
| |
|
|
|
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. |
|
|
| |
|
|
|
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 ! |
|
|
| |
|
|
|
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ü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. |
|
|
| |
|
|
|
| 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 KompilierenMarkierenSeparierenDECLARE 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
|
|
|
| |
|
|
|
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 ▲ |
|
|
|