Seite 1 von 1

Innerhalb einer Zeile etwas einfügen

Verfasst: Mittwoch 2. Juli 2008, 14:57
von ete
Hallo!

Ich habe folgendes Problem:

Ich habe folgenden String:

Code: Alles auswählen

atgcgctcgcgctcgcgctcgcgcgctcgcgc
atgcgcgctcggcgcgttctcggagagatgg
tggctcggcgcctcggcgcgcttcgcgcgcgc
Und möchte im nachhinein folgendes an bestimmten Positionen einfügen:

Code: Alles auswählen

atgcgctcgcgctcgcgctcgcgcgctcgcgc
        >>>>>>>>>
atgcgcgctcggcgcgttctcggagagatgg
 >>>>
tggctcggcgcctcggcgcgcttcgcgcgcgc
Die > Zeichen sind auf bestimmten Positionen versetzt, das wird hier nicht angezeigt. >>>>>>>>> beginnt z.B. bei [5] also unter ctcgcgctcgcgc.

Nun habe ich folgenden Ansatz:

1) String in ein RichTextCtrl packen, wobei nach jeder Zeile eine Dummy Zwischenzeile eingefügt wird (mit irgendeinem Zeichen)
2) Start und End Positionen von '>' auf der String Linie ist bekannt
3) Start und End Positionen auf der Dummy Linie berechnen
4) Zur Start Position auf der Dummy Linie gehen (SetInsertionPoint) und Dummy Zeichen mit > ersetzen.

Würdet ihr einen anderen Weg wählen?

Wäre für einen Tip dankbar, vielleicht geht das alles auch einfacher...

Liebe Grüsse
Stefanie

Edit (Leonidas): Wenn man sich schlau anstellt, werden die > auch an der richtigen Stelle angezeigt.

Verfasst: Mittwoch 2. Juli 2008, 20:13
von BlackJack
Ich würde eine nicht-proportionale Schrift verwenden und entsprechend viele Leerzeichen vor den '>' ausgeben. Das geht mit Zeichenketten und Multiplikation recht einfach.

Edit: Ein wichtiges "nicht" eingefügt. :-)

Verfasst: Donnerstag 3. Juli 2008, 07:35
von ete
BlackJack hat geschrieben:Ich würde eine nicht-proportionale Schrift verwenden und entsprechend viele Leerzeichen vor den '>' ausgeben. Das geht mit Zeichenketten und Multiplikation recht einfach.

Edit: Ein wichtiges "nicht" eingefügt. :-)
Ja, das ist klar, nehme Courier :D

Aber würdest du es generell so machen?

Später überlege ich noch den '>' Pfeil mit einem richtigen zu ersetzen. Das müsste ja mit einem BitmapFromBuffer gehen.

Verfasst: Donnerstag 3. Juli 2008, 09:25
von Leonidas
Ich verstehe irgendwie nicht genau was du einsetzen willst, nach welchen Regeln und warum du dich da überhaupt an wx klettest. Das hat doch mit wx nichts zu tun.

Verfasst: Donnerstag 3. Juli 2008, 12:49
von ete
Doch, ich möchte es ja am Ende durch wx Darstellen!

In etwas so:

http://picasaweb.google.de/luecks/Pytho ... 1570350674

Verfasst: Donnerstag 3. Juli 2008, 13:25
von Leonidas
Solange du es als String hast, kommt da wx nicht ins spiel, es stört da sogar weil du Darstellung und Logik nicht vermischen solltest, sonst wird alles komplizierter als nötig.

Verfasst: Donnerstag 3. Juli 2008, 18:07
von ete
Gut, gibt es denn eine Funktion, mit der man betsimmte Zeichen in einer bestimmten Zeile mit anderen Zeichen ersetzen kann?

Ich muss ja auf eine bestimmte Zeile in eine bestimmte Position gelangen.

Verfasst: Donnerstag 3. Juli 2008, 23:26
von CM
Leonidas hat schon recht, aber ich möchte mal anders fragen: Was willst Du eigentlich darstellen? '>' ist ja in einigen Sequenzformaten ein reserviertes Zeichen.

Zu Deiner letzten Frage: Klar geht das. Man kann dabei u. U. mit regulären Ausdrücken arbeiten. Aber den Link verstehe ich eher so, daß Du nicht ersetzen, sondern durch Pfeile hervorheben willst. Möchtest Du da wirklich mit 'Text' arbeiten? Wäre eine Lösung mit wx.GraphicsContext nicht etwas für Dich? Das wäre zwar einige Frickelei, gäbe aber ein schönes Ergebnis.

HTH
Christian

Verfasst: Freitag 4. Juli 2008, 11:12
von ete
Ich möchte einen Pfeil mit Text unter einer bestimmten Postion Darstellen (Blast Hits auf einer Sequenz hervorheben).

Werde mir wx.GraphicsContext mal näher anschauen!

Danke
Stefanie

Verfasst: Freitag 4. Juli 2008, 15:57
von CM
ete hat geschrieben:Ich möchte einen Pfeil mit Text unter einer bestimmten Postion Darstellen (Blast Hits auf einer Sequenz hervorheben).
Eben. Noch ein Tipp: Ich würde so vorgehen, dass ich eine Pfeilspitze entwerfen würde, die (skalierbar) etwa ein bis zwei Zeichen breit ist und dann nahtlos einen Balken variabler Länge hinzufügen. Das ist zwar nicht so rechengünstig, spart aber womöglich Entwicklungszeit.

Möchtest Du Deine Software mal veröffentlichen? Wäre neugierig.

HTH
Christian

Verfasst: Montag 7. Juli 2008, 08:20
von ete
Hallo Christian!

Danke für den Tip!

Infos und demnächst Screenshots findest du auf meiner HP (siehe unten).
Ausser diesem Teil ist das Programm fertig.

Idee ist, dass man gegen seine eigene Datenbank blasten kann :D

Sehr nützlich im Labor!

Viel Spass beim Stöbern!

Verfasst: Mittwoch 13. August 2008, 11:06
von CM
Nachtrag: Es gibt auch GenomeDiagram schon fertig und zu nutzen. Bin gerade durch eine Diskussion in der biopython-Mailingliste darauf aufmerksam geworden.

Gruß,
Christian

Verfasst: Mittwoch 13. August 2008, 11:23
von ete
Danke für den Hinweis! Werde es mir mal ansehen!
Stefanie