moin
Ich hab mir zu Lernzwecken einen Server geschrieben, bei welchem ein
Client eine beliebige Datei anfordern kann und der Server sendet diese
dann sofern vorhanden.
Hier erstmal der Quelltext des Servers zum Senden der Datei:
file = open(f_path, 'rb')
while 1:
data = file.read(1024)
if not data: break
self.connection.send(data)
Und hier der Quelltext des Clienten zum empfangen:
recvBytes = 0
while file_size > recvBytes:
data = sockobj.recv(1024)
file.write(data)
recvBytes += len(data)
print file_size, ' - ', recvBytes
file_size wird vorher vom Server uebertragen und entspricht natuerlich
der Dateigröße
Lokal funktioniert das auch, nur wenn Server und Client auf
unterschiedlichen Rechnern laufen, bekomm ich vom Clienten folgende
Ausgabe:
[...]
17684 - 14336
17684 - 15360
17684 - 16384
17684 - 16669
Dann haengt der Client. Wenn ich den Clienten beende, ist die
uebertragene Datei genau diese 16669 Bytes groß.
Der Server dagegen beendet ganz normal die Uebertragung und wartet auf
die naechste Anforderung.
Bei anderen Dateien sieht das aehnlich aus, es fehlen anscheinend immer
etwas weniger als 1024 Bytes.
Vielen Dank fuer eure Hilfe
boesi
--
Ein Wunder muss heute schon ganz schoen #1671 : icq-intern
wundervoll sein um ein Wunder zu sein, #73628288 : icq-extern
sonst wuerde man sich ja gar nicht mehr wundern boesi111 : aim
.-==Prof. Dr. Harald Lesch==-. i171 : reallife
_______________________________________________
python-de maillist - python-de(a)python.net
http://python.net/mailman/listinfo/python-de
Karl Pflästerer schrieb:
>>Ich wäre froh, gäbe es schon mal ein Musterprogramm, wo einige Ansätze
>>realisiert sind.
>
>
> Wenn du genau beschreibst, was du willst, wird sich da schon was finden.
>
>>vorab: ich habe nur etwas Wissen in Basic, Cobol und RPG
>
>
> Du kannst programmieren: das reicht.
naja.. nicht wirklich! Für Filter reicht es und anderes per try and
error, aber es soll besser werden!
>
>>Problem:
>>Ich suche eine Möglichkeit eine Datei mit Sätzen unterschiedlichen
>>Inhaltes zu lesen, je nach Inhalt in 3 verschiedene Dateien auszugeben
>>und in eine CSV-Datei auszugeben.
>>Hintergrund:
>>Ich erhalte von unserem Rechenzentrum eine Textdatei mit festem
>>Satzaufbau, z.B."Fb82130.dav ". (82130 ist die Mandantennummer).
>>In der Datei sind verschiedene Satzarten:
>>Wenn Satz Stelle 1-2 = 55, dann Konto mit Saldo
>>Wenn Satz Stelle 1-2 = 14, dann Buchung wie kann ich das erreichen,
>
> Wie sind denn die einzelnen Sätze vonaeinader getrennt? Ich nehme an
> newline und du hast dies nur in deiner E-Mail wegen der Zeilenlänge so
> nicht dargestellt?
Die Sätze sind 80 Byte lang und enden mit carriage-return/line feed
(CRLF,0d0a)
>
>
>>Firmenstammsatz Beispiel:
>>5082130 7
>>5182130120001400088200881007620076100171001700017200
kann erst einmal überlesen werden.
>>Kontenstammsatz Beispiel:
>>558213011000 00 DEUTSCHE BANK..... 00003155456 B
>
>
>>Satzaufbau Beispiel:
>>1 - 2 Satzart
>>3 - 7 Mandantennummer (ergibt die Dateinummer: FBnnnnn.DAV)
>>8 - 12 Konto
>>21 - 65 Kontotext
>>66 - 76 Betrag Anfang
>>79 - 79 Bilanzmerkmal (B=Bilanz)
>>... anderes lasse ich mal weg
>
>
> Könntest du dies etwas anders schreiben (das macht es Helfern leichter)
> z. B. so (du beginnst mit 1 zu zählen):
1 2 3 4 5 6
7 8
> 12345678901234567890123456789012345678901234567890123456789012345678901234567890
aabbbbbcccccdddddeefggggggggggggggggggggggggggggggggggggggggggggghhhhhhhhhhhiijk
> und hierunter die Beispielfelder.
meintest Du das so?
Dann ist a = Satzart n
b = Mandant n
c = Kontonummer n
d = Unterkonto n
e = Filiale a
f = blanc
g = Text a Kontobezeichnung
h = Betrag n,2 (num. 2 Nachkommastellen)
i = Sortierkennzeichen a
j = Bilanzkennzeichen a
k = Sperrkennzeichen a
(a = alpha, n = numerisch)
weitere Satzarten kann ich später beschreiben. Ich benötige eigentlich
erst einmal einen Ansatz, wie solch ein Programm anzugehen ist. "hello
world" und "zählen bis 10" in den Büchern helfen nicht so richtig!
Ich denke, wenn das Kontenplan "Einlese- und Aufbereitungsprogramm"
steht sind die anderen Modifikationen.
Vorsicht Falle:
Daten kommen von Groß-EDV (EBCDIC-Code) und Umlaute seltsam:
RšCKST., das soll RÜCKST. (Rückstellung) heißen
K™ST KÖST (Körperschaftssteuer)
>
>>568213011000 0 9R --> für spätere Statistik, die ersten 3 Felder sind
>>identisch zum Konto
kann erst einmal überlesen werden.
>
>
>>Buchungen eines Jahres (aufgelaufen)
148213018430 99998 311003 000108819 (Sollseite des Kontos)
148213099998 18430 311003 000135425 (Habenseite des Kontos)
1 2 3 4 5 6 7
12345678901234567890123456789012345678901234567890123456789012345678901234567890
llmmmmmnnnnnooooopppppqqqqqrrrrrrssssssttuuuuuuuuuvvvvvvvvvvvvvvvvvvwwxxxxxyyyyy
l = Satzart n
m = Mandant n
n = Konto-Soll n
o = Unterkonto-Soll n
p = Konto-Haben n
q = Unterkonto-Haben n
r = Buchungsdatum n TTMMJJ
s = Belegdatum n TTMMJJ
t = Textschlüssel a
u = Betrag n,2 (num. 2 Nachkommast.)
v = variabler Text a
w = Steuerschlüssel n
x = Kostenart
y = Kostenträger
>>Ich möchte
>>- Dialog zu Einlesen beliebiger Dateien (82130, 42776, etc.) Der Rest
>>der Dateibezeichnung ist festgelegt.
Die Eingabe-Datei für obige Daten heißt FB82130.DAV
> Kein Problem.
>
>
>>- Erstellen einer Datei "Firmenstammsatz"
>>- Erstellen einer Datei "Kontenplan"
>>- Erstellen einer Datei "Buchungen"
>
>
> Auch kein Problem.
>
>
>>- erstellen einer "Saldenliste" Saldenliste ist eine Zeile je Konto
>> Anfangsbestand laut Eröffnungswert im Kontensatz
>> + und - der Bewegungszahlen (aus Buchungen)
>> errechnet: neuer Endwert
Beispiel:
Überschrift: Saldenliste Mandant 82130 vom 31.12.2003, Seite : 1
Konto Bezeichnung Anfangssaldo Umsatz-Soll Umsatz-Haben Endsaldo
ccccc ggg...ggggg hhhhhhhhh,hh uuuuuuu,uu uuuuuuu,uu zzzzzzzzz,zz
wobei h + uS - uH = z ist.
wenn n = 99998, dann ist u = uH,
wenn p = 99998, dann ist u = uS
> sollte auch problemlos möglich sein. Was mir hierbei einfällt: eventuell
> mußt du dir gedanken über Rundungsfehler machen (bezweifle ich aber).
zur Zeit keine Rundungen, da nur Nettobuchungen vorliegen.
Mehrwertsteuer muß nicht herausgerechnet werden.
>
>>zu guterletzt eine Liste:
>>Liste Bilanz (alle Konten haben ein Merkmal "B" in einem Feld)
>>Liste G+V (alle Konten haben *kein* Merkmal "B" in einem Feld)
>
>
> Einfach zu filtern.
>
> [...]
>
>
>>GUI-Änderungsprogramm:
>>- Firmenstammsatz
>>- Konto
>>- Buchungen
>
>
> Ich würde an deiner Stelle erst einmal eine Lösung für die Kommandozeile
> schreiben (sollte nicht zu wild sein) und die GUI hinterher entwickeln.
o.k. Ich wollte gern das Ziel nennen, damit nicht der Weg dahin verbaut ist.
>
> Bitte sende eine E-Mail (wenn möglich mit angepaßter Beschreibung (siehe
> meine Anmerkungen)) *nur* an die Mailingliste. Die Mailingliste ist
> geschlossen, wer dort schreibt, empfängt die Liste auch. Daher ist Cc
> nicht notwendig.
Jetzt ist die Mail doch Mammut.. geworden. Tut mir leid, aber kürzer
konnte ich nicht!
Danke für die Starthilfe! Auf geht's.
MfG Werner
_______________________________________________
python-de maillist - python-de(a)python.net
http://python.net/mailman/listinfo/python-de
Hallo
Leider hab ich aus schusslichkeit ein py statt eines pyc Files gelöscht
Kann ich das pyc File irgendwie decompilieren?
mfg christian
_______________________________________________
python-de maillist - python-de(a)python.net
http://python.net/mailman/listinfo/python-de
Hi!
Durch das cmd-Modul habe ich eine Endlosschleife("loop")
die ich nur durch sys.exit() oder "Shift-d" beenden kann. Merkwürdigerweise
wird dabei weder meine "def exitfunc():" gerufen, noch die
__del__: der Objekte. Was schmerzhaft ist, weil sie sich
eigentlich für den nächsten Programmaufruf "pöckeln"
(pickel).
Jetzt habe ich mich erst mal damit beholfen, selber die
__del__ Funktionen aufzurufen bevor ich sys.exit() aufrufe.
Aber ich glaube das dass so nicht gedacht war.
Olaf
_______________________________________________
python-de maillist - python-de(a)python.net
http://python.net/mailman/listinfo/python-de
Ich möchte mich etwas mit Python beschäftigen und suche ein Programm,
mit dem ich
a. eine Datei mit fester Satzlänge einlesen kann, darin sind Felder mit
Text und Betrag.
b. diese Sätze möchte ich editieren und
c. wieder auf Platte ausgeben und drucken.
Hat da einer von den Helfern was?
Mit freundlichem Gruß
Werner Warweg
_______________________________________________
python-de maillist - python-de(a)python.net
http://python.net/mailman/listinfo/python-de
...Habe die Lösung für mein Problem gefunden:
def complete_olaf(self, *args):
# Der Befehl der eine selbst definiert Komplementirungsmethode
# haben soll, muss eine Funktion haben die mit "complete_" im
# Namen beginnt.
print "Ich schrieb gleich was hinter den Prompt"
# Ich informiere den User was ich an zu bieten habe
# args[2] gibt mir die Anzahl der Zeichen die bisher hinter
# dem Prompt stehen. args[1] Ist der String der hinter dem Prompt
# steht und den ich in einer (z.B.) Funktion auswerten kann...
irgend_ein_ergebnis = irgend_eine_func(args[1])
# Der Rückgabe Wert sollte (sinnvollerweise) eine Liste
#sein...
return irgend_ein_ergebnis
# Denn das erwartet der Loop der die complete_*-Funktion
# aufruft. Sobald die zurückgegebene Liste nur noch aus
# ein Element besteht, wird sie in die Eingabe hinter der Cursor-
# Position gezaubert. Genial - oder?
Viel Spaß
Olaf
_______________________________________________
python-de maillist - python-de(a)python.net
http://python.net/mailman/listinfo/python-de
Ahoj!
Olaf 'Rübezahl' Radicke <olaf_rad(a)gmx.de> wrote:
>
> Z.Z. habe ich eine GUI-Krise. Ich unterbreche die Arbeit an
> meinen TK-GUI-Klienten und werde erst mal den "UI-Klienten"
> anfangen. GUI's haben alle (GTK,Qt,Tcl/Tk,Motif...) das selbe
> Problem, das sie unflexibel sind. Komplexe Dinge werden mit
> GUI schnell unübersichtlich.
> Das was "intuitive Benutzung" genannt wird, ist in Wahrheit
> meist nur eine Bevormundung des Users durch die GUI.
Kann ich gut verstehen. Nun aber GUIs sind oft benutzerfreundlicher als
Commandline Programme: Beispiel find. Textorientierte Programme
können leicht komplex werden, sehr komplex sogar (empfehlung: manual von
den diffutils auf www.gnu.org).
Wenn ich zu viel Zeit habe, könnte ich es mir vorstellen, eine
benutzerfreundliche shell zu machen, die auch auf windows _gut_
läuft, also mit readline (schon mal mit command.com gearbeitet, und
dann cmd.exe versucht?), mit vervollständigung der befehle (schon mal
den völlig bescheuerten mechanismus in cmd.exe gesehen?) und
ausbesserung von falsch getippten befehlen (etwa so wie tcsh). Aber
leider bin ich im Moment mit was anderm beschäftigt :(
grüße,
Marek
_______________________________________________
python-de maillist - python-de(a)python.net
http://python.net/mailman/listinfo/python-de
Hi!
Was ich noch nicht gefunden/verstanden habe bei cmd...
Wenn ich das erste mal (mit leerer Zeile) Tab drücke, wirft
er mir alle (meine) zu Verfügung stehenden Befehle aus.
Wenn dann ein Befehl und ein Leerzeichen kommt und ich
wieder Tab drücke, listet er mir die Dateien im aktuellen
Verzeichnis auf - O.K. Aber wenn ich das selber bestimmen
will, was passieren soll - welche Methode muss ich dann
überschreiben?
Olaf
_______________________________________________
python-de maillist - python-de(a)python.net
http://python.net/mailman/listinfo/python-de
Hallo Liste!
Ich habe hier einen Haufen Wavefiles mit Zahlen (Betonung steigend, fallend,
gleichbleibend) und möchte nun aus diesen Zahlen Kombinationen bilden (123 =
100fallend.wav+3steigend.wav+undbleibend.wav+20fallend.wav).
Diese sollen dann in einer Internetanwendung als MP3 ausgegeben werden.
Gibt es da schon irgendwas, was das kann, bzw. kann mir jemand einen Schubs
in die Richtung geben, in der ich suchen muss? Meine bisherigen
Google-Ergebnisse haben mir nicht wirklich weitergeholfen...8~(
Wenn es ausserdem bessere Ideen gibt, als das Zeug als MP3 im Browser
auszugeben, bitte gerne!!
Für jeden Hinweis Dank im Voraus...
Björn.
_______________________________________________
python-de maillist - python-de(a)python.net
http://python.net/mailman/listinfo/python-de