florengray
Goto Top

Batch for delims tokens Datei einlesen

Hallo, mal wieder ein Batchproblem.

Ich habe ein Programm geschrieben, dass mit Aminosäuresequenzen in DNA Sequenzen übersetzt.
Da es aber für eine Aminosäure mehrere DNA Übersetzungen gibt, wollte ich alle Möglichkeiten berücksichtigen.
Da habe ich einbe Art Treppenmodell entwickelt:
Aminosequenz: MetPheLeu
Treppenmodell: m-RNA
AUG
UUU
UUC
UUA
UUG
CUU
CUC
CUA
CUG

So nun soll die m-RNA in die DNA übersetzt werden.
Ich habe eine aufwendige Möglichkeit die DNA Sequenz auch in dem Treppenmodell darzustellen, dachte mir aber
dass ich jede einzelne Zeile mit ner For auslesen könnte.
Ablauf
For liest erste Zeile aus-->Die erste Zeile wird Zeichen für Zeichen durchgekämmt, bis man auf einen Buchstaben trifft. (Platzhalter sind ja die Leerzeichen)--> Wenn das passiert ist, wird jeder dieser drei Buchstaben eingelesen und direkt in die DNA übersetzt.
Dann soll die Übersetzung mit den dazugehörigen Leerzeichen in eine andere Datei geschrieben werden.
Herauskommen soll das Treppenmodell mit der DNA Übersetzung.

Mein Problem: Ich weiss nicht wie ich die Leerzeichenanzahl auslesen und dann wieder in die andere Datei speichern kann.
if %EB%==" " goto SPACE
...
funktioniert so nicht.
Ich krieg auch Fehlermeldungen, wenn die Zeile ausgelesen wird. Eine Zeile sieht dann so aus: -AUG -
hinter AUG ist noch ein Leerzeichen, und wenn der Lesevorgang da angekommen ist, bricht die For einfach ab.

Ich habe probiert aber es geht nicht.
Ich habe auch Probleme mit dem auslesen, wann denn dann der Triplettcode anfängt.
Ich dachte ich mach das per For /L nur ich müsste bis 999 zählen lassen, um alles in Betracht zu ziehen.
Dauert aber sehr lange.?
Z.B.: # = Leerzeichen

###AUG
UUU
CUC

for /l gibt ne Zahl aus: 1,2,3,4,5,6,7,8...
dann set RNAtmp=!RNA:%Zahl%,1!
dann vergleicht:
if RNAtmp=# goto :eof
sonst übersetzen....
aber da die For /l bis 999 zählt würde sie auch noch suchen, obwohl der Triplettcoide schon lange fertig übersetzt worden ist.
Man müsste die Variable der For /l (0,1,%xyz%) wärend des zählens aktualisieren. Aber das dürfte nicht gehen.

Was meint ihr dazu?

florengray

Content-Key: 82574

Url: https://administrator.de/contentid/82574

Ausgedruckt am: 29.03.2024 um 14:03 Uhr

Mitglied: bastla
bastla 08.03.2008 um 16:54:44 Uhr
Goto Top
Hallo florengray!

Vielleicht solltest Du mit einem Beispiel für "Eingabe" und "gewünschte Ausgabe" etwas deutlicher machen, was der Batch eigentlich bewerkstelligen soll.

Besser für die Verarbeitung einzelner Zeichen wäre übrigens VBScript geeignet ...

Grüße
bastla

P.S.: Mit -Tags kannst Du nicht nur Codebeispiele, sondern zB auch Dein Treppenmodell (inkl der erforderlichen Leerzeichen) sinnvoll formatiert anzeigen lassen.