Innerhalb einer Zeile etwas einfügen

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

Innerhalb einer Zeile etwas einfügen

Beitragvon ete » Mittwoch 2. Juli 2008, 14:57

Hallo!

Ich habe folgendes Problem:

Ich habe folgenden String:

[code=]atgcgctcgcgctcgcgctcgcgcgctcgcgc
atgcgcgctcggcgcgttctcggagagatgg
tggctcggcgcctcggcgcgcttcgcgcgcgc[/code]

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

[code=]atgcgctcgcgctcgcgctcgcgcgctcgcgc
>>>>>>>>>
atgcgcgctcggcgcgttctcggagagatgg
>>>>
tggctcggcgcctcggcgcgcttcgcgcgcgc[/code]

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.
BlackJack

Beitragvon BlackJack » Mittwoch 2. Juli 2008, 20:13

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:

Beitragvon ete » Donnerstag 3. Juli 2008, 07:35

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.
Benutzeravatar
Leonidas
Administrator
Beiträge: 16023
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Beitragvon Leonidas » Donnerstag 3. Juli 2008, 09:25

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

Beitragvon ete » Donnerstag 3. Juli 2008, 12:49

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

In etwas so:

http://picasaweb.google.de/luecks/Pytho ... 1570350674
Benutzeravatar
Leonidas
Administrator
Beiträge: 16023
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Beitragvon Leonidas » Donnerstag 3. Juli 2008, 13:25

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

Beitragvon ete » Donnerstag 3. Juli 2008, 18:07

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.
CM
User
Beiträge: 2464
Registriert: Sonntag 29. August 2004, 19:47
Kontaktdaten:

Beitragvon CM » Donnerstag 3. Juli 2008, 23:26

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:

Beitragvon ete » Freitag 4. Juli 2008, 11:12

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
CM
User
Beiträge: 2464
Registriert: Sonntag 29. August 2004, 19:47
Kontaktdaten:

Beitragvon CM » Freitag 4. Juli 2008, 15:57

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:

Beitragvon ete » Montag 7. Juli 2008, 08:20

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!
CM
User
Beiträge: 2464
Registriert: Sonntag 29. August 2004, 19:47
Kontaktdaten:

Beitragvon CM » Mittwoch 13. August 2008, 11:06

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:

Beitragvon ete » Mittwoch 13. August 2008, 11:23

Danke für den Hinweis! Werde es mir mal ansehen!
Stefanie

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder