Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Farbe von String ändern

Frage Entwicklung VB for Applications

Mitglied: florengray

florengray (Level 1) - Jetzt verbinden

02.05.2008, aktualisiert 03.05.2008, 9514 Aufrufe, 10 Kommentare

Hallo,
beschäftige mich gerade damit VB Express zu erlernen.
Problem:
Ich habe Daten in einem String, die ich auf Fehler überprüfe.
Wenn ich per If dann zu so einem Fehler gekommen bin, soll das Zeichen, dann durch ein "#" ersetzt wird und dass soll dann auch Rot erscheinen.
Das heißt, ich will eine sonst schwarze Zeichenkette mit roten "#" spicken, wenn dort Fehler drin sind.
Die Variable die noch andere Zeichen enthält wird immer durch += erweitert.

Zuletzt wird dass dann in einer RTB angezeigt.
Ist das Möglich?
Ach ja, ich will nicht die Farbe in einer TextBox oder so ändern!
Die Fehelrroutine befindet sich in einem Public Modul welches ich von einer Form aus aufrufe.



Hoffe ihr könnt mir helfen.

(Ist ein Programm für Genetik)
Mitglied: miniversum
03.05.2008 um 10:08 Uhr
Verstehe ich das richtig das du einen Text in einer Variabeln vom Typ String einfärben willst? Das geh so nicht. Du könntest entweder eindeutige Markierungen an den stellen setzen. Wenn das # z.B. nicht sonst in dem Text vorkommt dan kans tdu das ja einsetzen. Diese Variable kanst du ja weiterhin mit + dann erweitern wie du möchtest. Bei der ausgabe must du dan einen Filer drüber laufen lassen der dier die ganzten # dann halt rot einfärbt.
Bitte warten ..
Mitglied: florengray
03.05.2008 um 13:34 Uhr
Hallo,
ja so hast du das richtig verstanden.
Mal ein Beispiel:
DNA Sequenz mit Fehlern: TACGACGT?TACA?ACTA??G
So, die ? können nicht übersetzt werden. Sind durch Mutationen hervorgerufen worden.
Die will ich jetzt aber in meiner Überstzung speziell einfärben lassen.
Übersetzung dazu: AUGCUGCA#AUGU#UGAU##C
Dabei soll jedes # den Fehler anzeigen und rot erscheinen.
Das wollte ich gleich in dem Modul machen lassen, aber das scheint ja so nicht zu gehen.
Das mit dem Filter kannte ich noch nicht.
Wie geht das?
Könnte man das dann so machen, dass der Filter den Ausgabe String (Übersetzung) durchscannt und alle # rot färbt? Das wäre super!
Es wäre aber auch möglich, wenn der Filter mir dann die RTB scannen würde.
(Wäre für mich aber noch ein wenig umständlicher)

Schönen Tag noch!

florengray
Bitte warten ..
Mitglied: miniversum
03.05.2008 um 14:09 Uhr
Den Filter müßtest du halt selbst schreiben.
Wenn du den String in die RTB schreibst mußt du danach einfach den Text nochmal durchlaufen, und die # markieren (geht über RTB.SelectedRtf). Danach kannst du dieses Zeichen einfärben mit
RTB.SelectionColor = Color.Red
Genaueres zum .SelectedRtf must du in der Hilfe nachschauen weil ichd as auch nur einmal gebraucht habe bisher und ich hier grade nicht nachschauen kann.
Im Prinzip halt die Teile des Textes in der RTB markieren und dann die Farbe wie beschrieben ändern.
Bitte warten ..
Mitglied: florengray
03.05.2008 um 16:55 Uhr
Hallo,
wenn das geht wäre das echt super.
Werd ich mal ausprobieren.
Vielen Dank!

:edit
Habe ich ausprobiert.

RichTextBox1.Text = F_Output_DNA
RichTextBox1.Find("#")
RichTextBox1.SelectionColor = Color.Red

Damit wird aber nur das erste Zeichen rot gefärbt und die anderen vernachlässigt.
Hab schon gesucht, aber ich weiss jetzt nicht, was ich machen soll, damit der mir alle Fehler markiert.
Bitte warten ..
Mitglied: miniversum
03.05.2008 um 18:29 Uhr
So sollte es gehen:
01.
RichTextBox1.Text = F_Output_DNA 
02.
pos = 0 
03.
Do 
04.
    pos = RichTextBox1.Find("#", pos + 1, RichTextBoxFinds.MatchCase) 
05.
    RichTextBox1.SelectionColor = Color.Red 
06.
    MsgBox(pos) 
07.
Loop While pos > 0
Er geht den ganzen String durch, sucht nach den "#", färbt dieses Zeichen ein und sucht dann weiter. Solange bis der String einmal durchsucht wurde.
Bitte warten ..
Mitglied: florengray
03.05.2008 um 18:59 Uhr
Hallo,
es funktioniert wirklich!
Dankeschön!

Hab nur das pos=0 in Dim pos = 0 umgewandelt.
Wäre noch super, wenn ich den Code auch verstehen würde.

Also:
Eine Do While Schleife
Tue solange pos > 0 ist folgendes:
pos ist = die Position von dem jetziges Zeichen was gescannt wird
Und suche in RTB1 nach "#", wobei die var pos pro Durchlauf um 1 erhöht wird und ???

Das mit dem Match Case habe ich nicht verstanden.
Könntest du mir noch sagen, was das ist?

Ansonsten vielen Dank dafür.
Bitte warten ..
Mitglied: miniversum
03.05.2008 um 19:23 Uhr
Das ganze war als Teil des Codes gedacht. Drum fehlt das dim pos.

Das ganze funktioniert nicht ganz so. Es wird nicht jedes einzelne Zeichen durchgegangen und verglichen, sondern:
pos = RichTextBox1.Find("#", pos + 1, RichTextBoxFinds.MatchCase)
Es wird die erste Position, nach pos+1, gesucht ander ein # steht. Diese Position wird wieder in pos gespeichert. Außerdem gilt dieses Zeichen dann als Selection.
Danach wird eben für dieses zeichen die Farbe verändert.
Danach wird ab dieser Position weiter gesucht wo das nächste mal ein # steht. Das ganze läuft so lange bis eben einmal der Ganze String in der RichTextBox1 durchsucht wurde. Dann liefert das find als position eine -1 zurück und die Schleife bricht ab.
Das MsgBox kannst du natürlich rausnehmen. Das war nur zur Anschauung drin. Es sollte dir die Position anzeigen ander sich jeweils die # befinden.
Das MatchCase brauchst du eigentlich garnicht umbedingt. Dieser Parameter ist optional. Allerdings gibt es mehrere Überladungen von Fin und daher kanns sein das die Falsche ausgewählt wird ohne diesen Parameter.
Bitte warten ..
Mitglied: florengray
03.05.2008 um 19:50 Uhr
Danke für die Erklärung!

Habe aber jetzt noch ein Problem.
Ich habe die versch. Strings, nach denen gesucht werden soll in Arrays gespeichert.
z.B. xyz(0) = ACT xyz(1) = TTG
Das wird in einem anderen Form von einem Benutzer eingegeben und dann halt eben in diesen Arrays gespeichert.
Wenn ich dann in diesem Form eine For laufen lassen zeigt die mir in einer MsgBox alle Inhalte an, die ich vorher in den Arrays speichern lies. (Das ist nur zum Fehler suchen)
In einem anderen Modul habe ich dieses xyz() as Public und als String deklariert, damit andere Funktionen darauf noch zugreifen können.
Wenn ich jetzt z.B. deinen Code dazu verwende, um nach den Strings zu suchen, lasse ich wieder eine For laufen und habe statt des "#" die xyz(a) stehen wobei das a in der For mit einer Zahl gefüllt wird. Dann müsste ja z.B. ACT bei xyz(1) wieder erscheinen.
Der gibt mir aber Fehlermeldungen zurück.
Ich habe soweit rausgefunden, das ich zwar in dem anderen Modul wo die Arrays festgelegt werden, die Arrays auch anzeigen lassen kann aber sobald ich das Modul verlasse und mir die Inhalte wann anders anzeigen lassen möchte sind die Arrays alle Leer???????
Und das gibt den Fehler.
Frage: Warum sind die Arrays alle leer? Habe sie doch als Public deklariert?
Public xyz() As String

:edit

ReDim Preserve Erw_Bear_Opt_find_mark(tmp_4)

Das ist auch eine Zeile aus dem Form, wo der Benutzer seine Suchstrings eingibt.
Da steht aber ein Re-DIM-Preserve drin !!
Das wird wohl der Fehler sein.Aber wie krieg ich das behoben?
Bitte warten ..
Mitglied: miniversum
03.05.2008 um 20:04 Uhr
Ich denke es wäre gut wen du dafür ein extra posting aufmachen würdest weil es mit der eigentlichen Frage ja nichts mehr zu tun hat.

Und ich verstehs ncith ganz. Du hast in einem Modul das array als public deklariert udn willst in in einem andern nutzen oder wie?
Bitte warten ..
Mitglied: florengray
03.05.2008 um 20:14 Uhr
Ok neuer Post: Arrays an andere Form übergeben
Bitte warten ..
Neuester Wissensbeitrag
Windows 10

Powershell 5 BSOD

(8)

Tipp von agowa338 zum Thema Windows 10 ...

Ähnliche Inhalte
Erkennung und -Abwehr
Lokale Virenprüfstation : Windows 10: Ändern von Einstellungen verhinden (5)

Frage von TryAndSolve zum Thema Erkennung und -Abwehr ...

C und C++
gelöst Anzahl der Buchstaben in einem String Element Array C++ (3)

Frage von Protected zum Thema C und C ...

Windows Server
gelöst Word 2010 : Absatz - Abstand per GPO ändern (3)

Frage von johanna-p zum Thema Windows Server ...

Heiß diskutierte Inhalte
Microsoft
Ordner mit LW-Buchstaben versehen und benennen (21)

Frage von Xaero1982 zum Thema Microsoft ...

Windows Update
Treiberinstallation durch Windows Update läßt sich nicht verhindern (17)

Frage von liquidbase zum Thema Windows Update ...

Windows Tools
gelöst Aussendienst Datensynchronisierung (12)

Frage von lighningcrow zum Thema Windows Tools ...

Windows Server
RODC über VPN - Verbindung weg (10)

Frage von stefan2k1 zum Thema Windows Server ...