Live-Forum - Die aktuellen Beiträge
Datum
Titel
23.04.2024 14:59:21
23.04.2024 14:47:39
23.04.2024 14:23:45
Anzeige
Archiv - Navigation
1036to1040
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

ASCII-Zeichen 'BD' ausgeben

ASCII-Zeichen 'BD' ausgeben
08.01.2009 12:07:30
Michael
Hallo Miteinander!
Ich möchte aus Excel heraus eine ASCII-Datei erzeugen. Als Trennzeichen muss ich an einer Stelle das ASCII-Zeichen 'BD' ausgeben. Also das Zeichen, dass in der ASCII-Tabelle in Zeile B Spalte D steht. Mit welcher Funktion mache ich das? Danke vielmals
Gruß
Michael

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: ASCII-Zeichen 'BD' ausgeben
08.01.2009 12:10:53
Ramses
Hallo
Es weiss ja keiner welches Zeichen in DEINER Tabelle steht.
Redest du vom Standardzeichensatz, oder vom erweiterten Zeichensatz.
Nimm mal diese Tabelle http://www.torsten-horn.de/techdocs/ascii.htm damit wir alle vom gleichen reden
Gruss Rainer
AW: ASCII-Zeichen 'BD' ausgeben
08.01.2009 12:24:50
Michael
Hallo Rainer!
Danke, das hat mir schon geholfen. BD ist dementsprechend das Zeichen 189, also chr(189). Danke
Gruß
Michael
AW: ASCII-Zeichen 'BD' ausgeben
09.01.2009 19:29:00
Michael
Hallo Ihr beiden!
Ich muss Euch nochmal stören. Mir fehlt noch ein Zeichen. In der Beschreibung steht, dass ein Low-Value-Zeichen den Satzabschluß bilden soll. Beschrieben wird das mit X'00'. Soll bedeuten, in der ASCII-Tabell der Hex-Wert. Da steht in der Tabelle von Dir Rainer, 0 bei Dezimal und NUL bei Zeichen. In der Hexdump-Tabelle wird das Zeichen mit 00 angezeigt. Ganz unten im folgenden Beispiel die letzten 6 Zeichen.
00000: 1d 18 31 30 30 31 31 31 52 45 30 30 30 38 30 37 "..100111RE000807"
00010: 38 30 30 34 30 34 30 30 31 31 30 38 30 31 30 39 "8004040011080109"
00020: 30 38 33 30 30 39 30 38 30 30 31 20 20 20 20 4b "08300908001 K"
00030: 52 36 31 39 32 30 30 35 30 32 30 39 20 20 20 41 "R61920050209 A"
00040: 3d 4b 52 20 20 20 20 20 20 20 20 20 20 20 20 79 "=KR y"
00050: b5 31 2c 34 2c 34 2c 52 45 43 4f 1c 79 2b 32 34 ".1,4,4,RECO.y+24"
00060: 30 30 6c 38 61 37 31 30 30 31 bd 30 1c 64 32 39 "00l8a71001.0.d29"
00070: 30 38 65 36 35 37 30 1e 54 61 78 69 20 2d 20 54 "08e6570.Taxi - T"
00080: 61 78 69 20 48 65 72 72 20 56 69 65 74 68 1c b3 "axi Herr Vieth.."
00090: 45 55 52 1c 79 2b 32 35 30 30 6c 38 61 37 31 30 "EUR.y+2500l8a710"
000a0: 30 31 bd 30 1c 64 33 30 30 38 65 36 35 37 30 1e "01.0.d3008e6570."
000b0: 54 61 78 69 20 2d 20 54 61 78 69 20 48 65 72 72 "Taxi - Taxi Herr"
000c0: 20 56 69 65 74 68 1c b3 45 55 52 1c 79 2b 32 35 " Vieth..EUR.y+25"
000d0: 30 30 6c 38 61 37 31 30 30 31 bd 30 1c 64 30 32 "00l8a71001.0.d02"
000e0: 30 39 65 36 35 37 30 1e 54 61 78 69 20 2d 20 54 "09e6570.Taxi - T"
000f0: 61 78 69 20 48 65 72 72 20 56 00 00 00 00 00 00 "axi Herr V......"
Aber wie bekomme ich das mit chr zu fassen. chr(0) oder chr(00) hilft da nicht.
Danke für die Hilfe.
Gruß
Michael
Anzeige
AW: ASCII-Zeichen 'BD' ausgeben
09.01.2009 21:00:14
Ramses
Hallo
Warum nicht ?
Ist das File dann beschädigt oder funktioniert nicht ?
Diese Varianten werden auch in VB und C# verwendet und funktionieren dort,... zumindest wenn man den jeweiligen Leuten glauben darf :-)
Wenn ich mal fragen darf,... wozu brauchst du das ?
Gruss Rainer
AW: ASCII-Zeichen 'BD' ausgeben
10.01.2009 11:31:20
Michael
Hallo Rainer!
Ich erstelle mir gerade einen Datev-Export im KNE-Format für den Steuerberater. Die Files sind immer in einem Block von 256 Zeichen aufgebaut, wobei die letzten 6 Zeichen dieses X'00' haben sollen. Das Prüfprogramm von Datev erkennt diese Zeichen nicht, wenn ich sie mit chr(0) übergebe. Ich weiß da keinen Rat mehr. Ich hoffe, Dir fällt da noch was ein. Ich habe mir den Satz so aufgebaut:
StringKNE = ""
'KNE-HEADER ERSTELLEN
StringKNE = Chr(29) & Chr(24) & Chr(49)
StringKNE = StringKNE & "001" 'Datenträgernummer, kann variieren
StringKNE = StringKNE & "11" 'Anwendungsnummer FiBu
StringKNE = StringKNE & "HR" 'Namenskürzel
StringKNE = StringKNE & Format(FD.Range("B3"), "0000000") & Format(FD.Range("C3"), "00000") 'Berater- und Mandantennummer
StringKNE = StringKNE & Format(FD.Range("C21"), "0000") & Right(FD.Range("B4"), 2) 'Abrechnungsnummer
StringKNE = StringKNE & "01" & Format(FD.Range("C7"), "00") & Right(FD.Range("B4"), 2) 'Datum von
StringKNE = StringKNE & Format(FD.Range("C9"), "00") & Format(FD.Range("C7"), "00") & Right(FD.Range("B4"), 2) 'Datum bis
StringKNE = StringKNE & "001" 'Primanota-Seite, immer 001
StringKNE = StringKNE & " " 'Passwort, 4x Leer
StringKNE = StringKNE & "HeeroSoft Mobil:" 'Anwendungsinfo, max 16 Zeichen
StringKNE = StringKNE & " 0177/606 7 606 " 'Input-Info, max 16 Zeichen
StringKNE = StringKNE & "y" 'Satzende
'KNE-VERSIONSSATZ
StringKNE = StringKNE & Chr(181) 'Versionskennung
StringKNE = StringKNE & "1," 'Versionsnummer und Trennzeichen
StringKNE = StringKNE & "4," 'Aufgezeichnete Sachkontonummernlänge und Trennzeichen
StringKNE = StringKNE & "4," 'Gespeicherte Sachkontonummernlänge und Trennzeichen
StringKNE = StringKNE & "SELF" 'Produktkürzel
StringKNE = StringKNE & Chr(28) 'Produktkürzel
StringKNE = StringKNE & "y" 'Satzende
LängeKNE = Len(StringKNE)
StringKNE = StringKNE & String(250 - LängeKNE, " ") & String(6, Chr(0))
BS.Cells(1, 15) = StringKNE
BS.Cells(1, 14) = Len(StringKNE)
Im drittletzten Satz steht das chr(0). Vielen Dank für Deine Hilfe.
Gruß Michael
Anzeige
AW: ASCII-Zeichen 'BD' ausgeben
10.01.2009 15:16:00
Ramses
Hallo
Vielleicht kann "String(6, Chr(0))" das nicht umsetzen.
Einfach mal zum testen "Chr(0) & Chr(0) & Chr(0) & Chr(0) & Chr(0) & Chr(0)" zum Schluss
sonst habe ich erhlich gesagt auch keine idee mehr.
Gruss Rainer
AW: ASCII-Zeichen 'BD' ausgeben
11.01.2009 16:55:57
Michael
Hallo Rainer!
Ich habe es. 6x chr(0) hat nichts gebracht. Ich habe daher überlegt, ob Excel die Zeichen anpasst und die Ausgabe abgeändert. Ich erzeuge nur noch 250 Zeichen und erst beim Print in die Datei werden dir chr(0) angehängt.
filechannel = FreeFile()
Open file For Output As #filechannel
' Initialisierung
rw1 = Selection.Row
rw2 = rw1 + Selection.Rows.Count - 1
For rw = rw1 To rw2 'Schleife für alle Zeilen
Application.StatusBar = "Export: " & rw - 1 & " / " & Cells(1, 26) & " Sätze"
dataitem = ""
For cl = 15 To 15 'Schleife für alle Spalten
If Cells(rw, cl) "" Then
dataitem = Cells(rw, cl) & String(6, Chr(0))
Print #filechannel, dataitem;
End If
Next cl
Cells(rw, 19) = Date
Cells(rw, 20) = "Export erfolgt!"
Next rw
Close #filechannel
Das klappt nun. Danke für Deine Hilfe
Gruß Michael
Anzeige
AW: ASCII-Zeichen 'BD' ausgeben
08.01.2009 12:25:55
Oberschlumpf
Hi Michael
Auch ich weiß jetzt nicht, welches Zeichen genau du meinst.
Aber ich denk trotzdem, dass du mit der Chr-Funktion weiterkommst.
Schau dir in der Excel-Hilfe mehr zu CHR an.
Hilfts?
ups..sehe gerad...VBA = gut...hmm...und du kennst dann noch nicht die CHR-Funktion?...oder was hab vielleicht ich falsch verstanden?
Ciao
Thorsten
AW: ASCII-Zeichen 'BD' ausgeben
08.01.2009 14:29:09
Michael
Hallo Thorsten!
War ein Verständnisproblem. Ich habe eine ASCII-Tabelle bekommen mit Hex-Angabe also 0 bis F. In dem dazugehörigen Text wird beschrieben, ein Zeichen aus der Zeile B Spalte D zu übergeben, also 'BD' steht im Text. Die chr-Funktion ist mir klar. Ich habe nur die Tabellen nicht im Kopf zusammenbekommen. chr(BD) geht nicht. Die Tabelle, die Ramses mir im Thread genannt hat, zeigt neben BD die 189. Das war dann der AHA-Effekt. Danke Euch allen nochmal.
Gruß
Michael
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige