Autor Beitrag
Namenlosnameless
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 259
Erhaltene Danke: 6

Windows XP Home Edition, Windos Vista
C#
BeitragVerfasst: Mo 23.11.09 23:08 
Hallo Leute!!


Ich bin ja ein angehender Chemiker und da habe ich mir gedacht ich mach mir ein Programm das chemische Formeln konvertiert( d.H.) Indizes auch als Indizes schreibt d.h tiefgestellt und Ladungen hochgestellt.

Frage1:
ausblenden C#-Quelltext
1:
2:
3:
4:
5:
ChemischerName = textBox1.Text;
            textBox1.Text = "";

            foreach (string i in ChemischerName.Split(null))
            {


ChemischerName ist die nochnicht formatierte Formel.

Ich will in einer foreach-Schleife prüfen ob jedes Zeichen entweder eine Zahl ein Buchstabe oder eine Ladung ist.
Was in die foreach hinein kommt ist kein Problem ich scheitere an der String.Split() Methode um den string überhaupteinmal auseinander zu trennen.

wo liegt bei meiner foreach das Problem das für i immer der ganze Ausdruck (ChemischerName) genommen wird?

Frage2: Wie sieht es mit dem tiefstellen aus? Ich mein ich hab zwar schon eine theoretische Lösung mit
ausblenden C#-Quelltext
1:
textBox1.SelectionCharOffset = -10;					

in einer Richtextbox, dennoch stellt mich das nicht ganz zufrieden weil im Endeffekt getrickst wird und ich mir ziemlich sicher bin das es da eine elegantere Methode gibt.

Google hat zu diesem Thema nichts brauchbares außer SelectionCharOffset hervorgebracht

könnt ihr mir helfen den Text tiefzustellen??

mfg namenlosnameless

_________________
1:<<Life sucks!!>> 2:<< Well okay>> 1: <<Just Yours>> 2:<<Ohmph>>
Kha
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 3803
Erhaltene Danke: 176

Arch Linux
Python, C, C++ (vim)
BeitragVerfasst: Mo 23.11.09 23:53 
string implementiert bereits IEnumerable<char>, du kannst direkt darüber iterieren:
ausblenden C#-Quelltext
1:
foreach (char c in chemischerName) ...					


Zu deiner zweiten Frage: Mit den beschränkten Features einer RichTextBox wird es wohl nur so funktionieren. Für maximale Freiheit könntest du mit System.Drawing selbst zeichnen, dafür solltest du dann aber ein neues Topic in der Grafik-Sparte anlegen.

_________________
>λ=
Namenlosnameless Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 259
Erhaltene Danke: 6

Windows XP Home Edition, Windos Vista
C#
BeitragVerfasst: Mi 25.11.09 20:56 
Danke!

_________________
1:<<Life sucks!!>> 2:<< Well okay>> 1: <<Just Yours>> 2:<<Ohmph>>