Trennung

  • Hallo. Habe folgende Dateistrucktur:

    Spoiler anzeigen
    [autoit]


    AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDDDDDDDDDDDEE.EE.EEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHIIIIIIIIIIIIIIIIIIIIIIIIIIIII
    11111111111111111111111111111111222222222222222222222222222222223333333333333333333333333333333344444444444444444444444455.55.5566666666666666666666666666666666777777777777777777777777777777778888888888888888888888888888888899999999999999999999999999999
    AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDDDDDDDDDDDEE.EE.EEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHIIIIIIIIIIIIIIIIIIIIIIIIIIIII
    11111111111111111111111111111111222222222222222222222222222222223333333333333333333333333333333344444444444444444444444455.55.5566666666666666666666666666666666777777777777777777777777777777778888888888888888888888888888888899999999999999999999999999999
    PLK-AV ./. Mürtgen ./. Siebert RSV: Card 31.12.09DK and D PPMPV RA: RA Lorenz (DK) SB:AKL / T-SK

    [/autoit]

    Jeder Datensatz hat 255 Zeichen und endet IMMER mit einer Leerstelle.
    Der erste Datensatz wäre wie folgt zu teilen:
    AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB
    CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
    DDDDDDDDDDDDDDDDDDDDDDDD
    EE.EE.EE
    FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
    GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG
    HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH
    IIIIIIIIIIIIIIIIIIIIIIIIIIIII <----- sind große "i"

    Der fünfte Datensatz wäre:
    PLK-AV
    ./.
    Mürtgen ./. Siebert
    RSV: Card
    31.12.09
    DK and D
    PPMPV
    RA: RA Lorenz (DK)
    SB:AKL / T-SK

    Frage ist nun, wie ich die Datensätze trenne und besonders auch die Reihen. Reihe 1, 2, 3, ... 9. Sie müssen die vorgegebene Länge beim lesen haben.

    Würde kich freuen wenn jemand damit klar kommt. Lege die Beispieldatei noch mal als Anhang bei. Aber bitte nicht verlegen, okay?

    Lieben Gruß,
    Alina

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    Geheime Information: ;)
    OuBVU5ebLhHu5QvlnAyQB4A7SzBrvWulwL7RLl2BdH5tI6sIYspeMKeXMSXl

    • Offizieller Beitrag

    Oder StringRegExp ein Array daraus machen:

    Spoiler anzeigen
    [autoit]


    #include <Array.au3>
    $sFile = FileRead(@ScriptDir & '\beispiel.txt')
    $aLine = StringSplit($sFile, @CRLF, 1)
    For $i = 1 To $aLine[0]
    If StringLen($aLine[$i]) = 254 Then
    $aData = StringRegExp($aLine[$i], '(.{32})(.{32})(.{32})(.{24})(.{8})(.{32})(.{32})(.{32})(.{29}).', 3)
    _ArrayDisplay($aData)
    EndIf
    Next

    [/autoit]
  • Hallo Oscar.

    Erst einmal Danke !

    Hatte das mit dem Array auch gedacht, aber ich wollte die Datensätze abrufbar sind, also z. B. Datensatz 1. Das habe ich nicht hin bekommen.

    Lieben Gruß,
    Alina

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    Geheime Information: ;)
    OuBVU5ebLhHu5QvlnAyQB4A7SzBrvWulwL7RLl2BdH5tI6sIYspeMKeXMSXl

    • Offizieller Beitrag

    Hmm...verstehe jetzt nicht so ganz wie Du das meinst.
    Willst Du ein 2D-Array?

    Also so:

    Spoiler anzeigen
    [autoit]


    #include <Array.au3>
    $sFile = FileRead(@ScriptDir & '\beispiel.txt')
    $aLine = StringSplit($sFile, @CRLF, 1)
    Dim $aData[1][9]
    For $i = 1 To $aLine[0]
    If StringLen($aLine[$i]) = 254 Then
    $aTmp = StringRegExp($aLine[$i], '(.{32})(.{32})(.{32})(.{24})(.{8})(.{32})(.{32})(.{32})(.{29}).', 3)
    For $j = 0 To 8
    $aData[UBound($aData) - 1][$j] = $aTmp[$j]
    Next
    ReDim $aData[UBound($aData) + 1][9]
    EndIf
    Next
    _ArrayDisplay($aData)

    [/autoit]