Innerhalb einer Zeile etwas einfügen

Plattformunabhängige GUIs mit wxWidgets.
Antworten
ete
User
Beiträge: 218
Registriert: Montag 19. Februar 2007, 13:19
Kontaktdaten:

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.
http://www.snowflake-sl.info/index.html
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. :-)
ete
User
Beiträge: 218
Registriert: Montag 19. Februar 2007, 13:19
Kontaktdaten:

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.
http://www.snowflake-sl.info/index.html
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

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.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
ete
User
Beiträge: 218
Registriert: Montag 19. Februar 2007, 13:19
Kontaktdaten:

Doch, ich möchte es ja am Ende durch wx Darstellen!

In etwas so:

http://picasaweb.google.de/luecks/Pytho ... 1570350674
http://www.snowflake-sl.info/index.html
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

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.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
ete
User
Beiträge: 218
Registriert: Montag 19. Februar 2007, 13:19
Kontaktdaten:

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.
http://www.snowflake-sl.info/index.html
CM
User
Beiträge: 2464
Registriert: Sonntag 29. August 2004, 19:47
Kontaktdaten:

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
ete
User
Beiträge: 218
Registriert: Montag 19. Februar 2007, 13:19
Kontaktdaten:

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
http://www.snowflake-sl.info/index.html
CM
User
Beiträge: 2464
Registriert: Sonntag 29. August 2004, 19:47
Kontaktdaten:

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
ete
User
Beiträge: 218
Registriert: Montag 19. Februar 2007, 13:19
Kontaktdaten:

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!
http://www.snowflake-sl.info/index.html
CM
User
Beiträge: 2464
Registriert: Sonntag 29. August 2004, 19:47
Kontaktdaten:

Nachtrag: Es gibt auch GenomeDiagram schon fertig und zu nutzen. Bin gerade durch eine Diskussion in der biopython-Mailingliste darauf aufmerksam geworden.

Gruß,
Christian
ete
User
Beiträge: 218
Registriert: Montag 19. Februar 2007, 13:19
Kontaktdaten:

Danke für den Hinweis! Werde es mir mal ansehen!
Stefanie
http://www.snowflake-sl.info/index.html
Antworten