Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1948to1952
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

Daten im Format "xxx() as Byte" in String umwandeln

Daten im Format "xxx() as Byte" in String umwandeln
12.10.2023 13:07:10
Joschi Witchcraft
Hallo Forum.

Aus einer Funktion erhalte ich die Daten in einer Array-Variablen im Fomat Byte zur Verfügung gestellt.

Wie kann ich ohne Loop diese Array-Daten in einen gewöhnlichen String umwandeln?

Gruß Joschi

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Daten im Format "xxx() as Byte" in String umwandeln
12.10.2023 13:20:10
daniel
Hi
mit Worksheetfunction.TextJoin(" ", true, x)

das VBA-Join funktioniert nur mit eindimenisonalen Variant- oder Text-Arrays.
die Excelfunktion Textverketten verarbeitet fast alles.

Gruß Daniel

AW: Daten im Format "xxx() as Byte" in String umwandeln
12.10.2023 14:09:32
Ulf
Hi
Loop zum Füllen ist aber erlaubt?


Sub tt()
Dim bBytes(9) As Byte
Dim i As Integer
Dim strText As String
For i = 0 To 9
bBytes(i) = 65 + i
Next
'
strText = StrConv(bBytes, vbUnicode)
'
MsgBox strText
End Sub

hth
Ulf
Anzeige
AW: Daten im Format "xxx() as Byte" in String umwandeln
12.10.2023 14:55:14
Joschi Witchcraft
Hallo Fenek,

Eine Schleife für rund 400.000 Zeichen - keine gute Idee.

Hallo Ulf.

Super: Der kleine Loop zum testweise Füllen der Array-Variablen sei Dir verziehen.

Deine Lösung mit StrConv: unschlagbar.

Problem wieder einmal gelöst. Vielen Dank,

Gruß Joschi
AW: Daten im Format "xxx() as Byte" in String umwandeln
12.10.2023 15:36:29
Fennek
Getestet:


Sub T_Byte()
Dim By(3) As Byte

'By = StrConv("ABC", vbFromUnicode)
By(0) = 65
By(1) = 66
By(2) = 67

Debug.Print WorksheetFunction.TextJoin(" ", True, By)

Debug.Print StrConv(By, vbUnicode)
End Sub


Anzeige
AW: Daten im Format "xxx() as Byte" in String umwandeln
12.10.2023 13:59:34
Joschi Witchcraft
Hallo Daniel.

Vielen Dank für Deine Antwort.

Leider bringt Dein Code bei mir einen Laufzeitfehler 1004

Meine Definitionen:

Dim ByteData() As Byte
Dim StringData As String
...
StringData = WorksheetFunction.TextJoin(" ", True, ByteData)

Der UBound von ByteData ist knapp 400.000

Gruß Joschi
AW: Daten im Format "xxx() as Byte" in String umwandeln
12.10.2023 14:12:26
Fennek
Hallo,

ohne "Schleife" dürfte es nicht gehen:

ungeprüft:


for b = 0 to ubound(ByteData)
out = out & chr(ByteData(b))
next b
msgbox out


mfg
AW: Daten im Format "xxx() as Byte" in String umwandeln
12.10.2023 15:06:04
daniel
Hi
mein Code ist korrekt und liefert diesen Fehler nicht!
das habe ich getestet.
Dein Array ist einfach zu groß.
Die Worksheetfunctions können oft nur eine begrenzte Menge an Daten verarbeiten, hier liegt das Limit bei 32767 Elementen.
Aber da du in deiner Anfrage keine Menge genannt hast, konnte ich das nicht berücksichtigen.

Wer mehr Daten verarbeiten muss dann zur Schleife greifen, was aber nicht unbedingt ein Nachteil sein muss, weil Schleifen oft nicht nur größere Datenmengen verarbeiten können, sondern häufig dabei auch noch schneller sind.

Gruß Daniel
Anzeige
AW: Daten im Format "xxx() as Byte" in String umwandeln
12.10.2023 15:23:35
Joschi Witchcraft
Hallo Daniel.

Sorry. Aber ich konnte ja nicht wissen, dass es bei dieser Funktion einen Mengenbegrenzung gibt. Es stimmt: die Anzahl der Zeichen hatte ich erst danach in meinem Thread erwähnt. Und eine Loop mit 400.000? Nicht mein Ding, wenn es anders geht. Und Laufzeit ist dabei kein Thema.

Gruß Joschi

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige