Array Werte vor Weitergabe an Drucker ändern

  • VB.NET
  • .NET (FX) 4.5–4.8

Es gibt 8 Antworten in diesem Thema. Der letzte Beitrag () ist von Axxxxxl.

    Array Werte vor Weitergabe an Drucker ändern

    Guten Tag!

    Ich lese mir den Inhalt einer Textdatei welche Steuerzeichen enthält in ein Array ein und schicke dieses dann einen speziellen Barcodedrucker, welcher diese Zeichen interpretieren kann.
    Nun müsste ich aber noch vor dem Drucken sozusagen leere Variablen der Textdatei gegen aktuelle Werte austauschen. Hier komme ich nicht weiter und bräuchte Hilfe:
    Das Array mache ich so:

    VB.NET-Quellcode

    1. Dim TXTarray() As String = IO.File.ReadAllLines("C:\sonstiger_we100x127_ND.txt")

    Die Steuerzeichen sehen so aus:

    Quellcode

    1. ^A0N,90,120^FO40,80^FR^CI0^FDNachdruck^FS
    2. ^FO10,40^FR^^GB580,150,3,B,3^FS
    3. ^FO40,250^A0N,161,141^CI13^FR^FD%$000000^FS


    Nun müsste ich bswp. das %000000 gegen einen aktuellen Wert aus meinem Programm austauschen! Geht das direkt im Array oder muss das erst in eine Textbox und dort bearbeitet werden?
    ==> seid .net zueinander :D <3 <==
    würde aus dem Bauch heraus mal sage, du iterierst über das Array und prüfst ob der Value '$000000' enthält, wenn ja, ersetzt du den Placeholder durch deine Daten.
    Wenn das Leben wirklich nur aus Nullen und Einsen besteht, dann laufen sicherlich genügen Nullen frei herum. :D
    Signature-Move 8o
    kein Problem mit privaten Konversationen zu Thema XY :thumbup:
    Hab es so probiert:

    VB.NET-Quellcode

    1. 'Ersetzen
    2. Dim suche As String = "%$000000"
    3. For Each item As String In TXTarray
    4. suche = suche.Replace(item, "blabla!")
    5. Next


    aber da kommt dann:
    {"Die Zeichenfolge kann keine Länge von 0 (null) haben. Parametername: oldValue"}
    ==> seid .net zueinander :D <3 <==

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Axxxxxl“ ()

    erstmal ist bei Arrays eine Foreach-Schleife besser. (siehe Foreach-Next)

    da du in deinem Array nur Strings hast, brauchst du die Elemente nicht iwie abändern, sondern kannst per element.Contains(variable) überprüfen, ob dein gesuchter String in der zeile vorhanden ist (siehe String.Contains())

    zu guter letzt, ersetzt du, wenn dein gesuchter String in dem Element vorhanden ist, den Placeholder durch deinen Wert per Replace (siehe String.Replace())


    wichtig: schau das deine Placeholder ($000000, etc) nicht durch einen Zeilenumbruch getrennt werden, dann bringt das überprüfen pro Zeile nämlich nichts.


    VG Acr0most
    Wenn das Leben wirklich nur aus Nullen und Einsen besteht, dann laufen sicherlich genügen Nullen frei herum. :D
    Signature-Move 8o
    kein Problem mit privaten Konversationen zu Thema XY :thumbup:
    Hab es jetzt so (am Ende lass ich mir zur Kontrolle das Array wieder in eine Textbox anzeigen) aber der Suchbegriff bleibt alt und wird nicht durch "GEFUNDEN" ersetzt?!

    VB.NET-Quellcode

    1. 'Ersetzen
    2. Dim suche As String = "^XA"
    3. For Each value As String In TXTarray
    4. If value.Contains(suche) Then
    5. value.Replace(suche, "GEFUNDEN")
    6. End If
    7. Next
    8. For Each Line As String In TXTarray
    9. txt_array.AppendText(Line & vbCrLf)
    10. Next

    ==> seid .net zueinander :D <3 <==
    probier mal

    VB.NET-Quellcode

    1. 'Ersetzen
    2. Dim suche As String = "^XA"
    3. For i = 0 to TXTarray.length -1
    4. If TXTarray(i).Contains(suche) Then
    5. TXTarray(i) = TXTarray(i).Replace(suche, "dein Wert");
    6. End If
    7. Next
    8. For Each Line As String In TXTarray
    9. txt_array.AppendText(Line & vbCrLf)
    10. Next


    offensichtlich hab ich mit der Foreach Käse erzählt, es sei denn du lässt bei der Foreach nen index mit laufen, wobei eine For - wie du meintest - besser ist.
    schau mal ob das so läuft, ist ungetestet.
    Wenn das Leben wirklich nur aus Nullen und Einsen besteht, dann laufen sicherlich genügen Nullen frei herum. :D
    Signature-Move 8o
    kein Problem mit privaten Konversationen zu Thema XY :thumbup:

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Acr0most“ ()

    danke, stimmt :thumbsup:
    gestern übersehen.
    Wenn das Leben wirklich nur aus Nullen und Einsen besteht, dann laufen sicherlich genügen Nullen frei herum. :D
    Signature-Move 8o
    kein Problem mit privaten Konversationen zu Thema XY :thumbup: