Autor Beitrag
Knedcox
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 79



BeitragVerfasst: Mi 24.08.05 12:06 
Mein Programm soll beim Speichern eines Namens den ersten Buchstaben als großen Buchstaben speichern und die folgenden als Kleinbuchstaben. Hab das so probiert:

ausblenden Delphi-Quelltext
1:
start^.Name:=(AnsiLowerCase(Memo1.lines.Text), AnsiUpperCase(Memo1.lines.Text[1]));					


Als Fehlermeldung bringt er jetzt aber, dass er in der Mitte kein Komma, sondern ein END erwartet. Hab den Code aber hier aus einem Thread raus und weiß nicht, warum er nicht funktioniert.
Narses
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Administrator
Beiträge: 10185
Erhaltene Danke: 1261

W11x64
TP3 .. D7pro .. D10.2CE
BeitragVerfasst: Mi 24.08.05 12:21 
Moin!

user profile iconKnedcox hat folgendes geschrieben:
Als Fehlermeldung bringt er jetzt aber, dass er in der Mitte kein Komma, sondern ein END erwartet. Hab den Code aber hier aus einem Thread raus und weiß nicht, warum er nicht funktioniert.

ausblenden Delphi-Quelltext
1:
start^.Name:=(AnsiLowerCase(Memo1.lines.Text) + AnsiUpperCase(Memo1.lines.Text[1]));					

Du darfst die Strings nicht mit Komma verketten, sondern mit "+". Aber der Code wird nicht das gewünschte Ergenis bringen; naja, ein bischen sollst du aber auch noch selbst experimentieren... :wink:

cu
Narses
Knedcox Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 79



BeitragVerfasst: Mi 24.08.05 12:41 
Hab den Fehler entdeckt. Er speichert jetzt den ersten Buchstaben zwei Mal (einmal groß und einmal klein). Jetzt wollt ich das Problem lösen, in dem ich den Code folgendermaßen abgeändert hab:

ausblenden Delphi-Quelltext
1:
    start^.Name:=AnsiUpperCase(Memo1.Lines.Text[1]) + AnsiLowerCase(Memo1.lines.Text[2..50]);					


Allerdings scheint man das Problem nicht so zu lösen :wink: . Hab auch keine Ahnung, wo ich so ein Problem nachlesen könnte. In der Delphi-Hilfe hab ich erst gar nichts zu AnsiUpper/LowerCase gefunden...

Willst du mir nicht vielleicht doch noch mal auf die Sprünge helfen :oops: .
retnyg
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 2754

SNES, GB, GBA, CPC, A500, 486/66, P4/3.0HT: NintendOS, AmigaOS, DoS
Delphi 5, Delphi 7
BeitragVerfasst: Mi 24.08.05 12:47 
ausblenden Delphi-Quelltext
1:
    start^.Name:=AnsiUpperCase(Memo1.Lines.Text[1]) + AnsiLowerCase(copy(Memo1.lines.Text,2,maxint));					

_________________
es gibt leute, die sind genetisch nicht zum programmieren geschaffen.
in der regel haben diese leute die regel...
LH_Freak
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 385

Win XP
D7 PE, D2k5 Trial
BeitragVerfasst: Mi 24.08.05 12:50 
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
var Str: String;
begin
//...
Str := ansilowercase(Memo1.Lines.Text[1]);
Str[1] := ansiUpperCase(Str[1]);
start^.Name := Str;
//...


Habs zwar nicht getestet, aber denke mal das geht.
Knedcox Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 79



BeitragVerfasst: Mi 24.08.05 12:54 
Merci, jetzt funktionierts.
retnyg
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 2754

SNES, GB, GBA, CPC, A500, 486/66, P4/3.0HT: NintendOS, AmigaOS, DoS
Delphi 5, Delphi 7
BeitragVerfasst: Mi 24.08.05 13:03 
user profile iconLH_Freak hat folgendes geschrieben:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
var Str: String;
begin
//...
Str := ansilowercase(Memo1.Lines.Text[1]);
Str[1] := ansiUpperCase(Str[1]);
start^.Name := Str;
//...


Habs zwar nicht getestet, aber denke mal das geht.

das denke ich nicht, aber so gehts:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
var Str: String;
begin
//...
Str := ansilowercase(Memo1.Lines.Text);
Str[1] := UpCase(Str[1]);
start^.Name := Str;
//...

_________________
es gibt leute, die sind genetisch nicht zum programmieren geschaffen.
in der regel haben diese leute die regel...
Knedcox Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 79



BeitragVerfasst: Mi 24.08.05 13:48 
Ja, das Speichern funktioniert jetzt korrekt. Merci dafür schon mal.

Bei der Suche in Editfeldern möchte ich gern das Gleiche machen. Man soll also, egal ob Groß- oder Kleinschreibung, nach einem Begriff suchen können, das Programm soll dann das eingegebene Wort anpassen (1. Buchstabe groß, die folgenden klein) und dann die Suche starten.

Er sucht und findets, wenn man es nach dem Schema (1. Buchstabe groß, die folgenden klein) eingibt. Wenn man allerdings alles klein oder alles groß schreibt, wandelt er es nicht um und findet es somit auch nicht. Muss man den Befehl in einem Edit-Feld anders formulieren?
LH_Freak
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 385

Win XP
D7 PE, D2k5 Trial
BeitragVerfasst: Mi 24.08.05 18:57 
wie suchst du denn? mit einem Dialog, oder per Prozedur.

Dialog

Einfach den Haken bei Groß und Kleinschreibung beachten rausnehmen :D

Prozedur

Würde es weiterhelfen zu wissen, mit welcher Prozedur du suchst ^^
Knedcox Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 79



BeitragVerfasst: Mi 24.08.05 19:04 
Prozedur:

ausblenden volle Höhe Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
 if (edit1.Text <> '') and (edit2.text <> '') and (edit3.text <> '') then
  Application.MessageBox('Bitte nur nach einem Suchbegriff suchen.','Hinweis',MB_OK) else
  if (edit1.Text <> '') and (edit2.text <> '') and (edit3.text = '') then
  Application.MessageBox('Bitte nur nach einem Suchbegriff suchen.','Hinweis',MB_OK) else
  if (edit1.Text <> '') and (edit3.text <> '') and (edit2.text = '') then
  Application.MessageBox('Bitte nur nach einem Suchbegriff suchen.','Hinweis',MB_OK) else
  if (edit2.Text <> '') and (edit3.text <> '') and (edit1.text = '') then
  Application.MessageBox('Bitte nur nach einem Suchbegriff suchen.','Hinweis',MB_OK) else

  if (edit1.Text <> '') and (edit2.text = '') and (edit3.text = '') then
  begin
    Zeiger:=start;
    while (Assigned(Zeiger)) and (Zeiger^.Name <> Edit1.Text) do
    begin
      Zeiger:=Zeiger^.Next;
    end;
    if Assigned(zeiger) then
    begin
      Memo1.Lines.add(Zeiger^.Name);
      Memo2.Lines.add(Zeiger^.Kuerzel);
      Memo3.Lines.add(Zeiger^.Gegenstand);
    end
    else Application.MessageBox('Suchbegriff nicht vorhanden.','Hinweis',MB_OK);
  end
  else if (Edit2.Text <> '') and (edit1.text = '') and (edit3.text = '') then
  begin
    Zeiger:=start;
    while (Assigned(Zeiger)) and (Zeiger^.Kuerzel <> Edit2.Text) do
    begin
      Zeiger:=Zeiger^.Next;
    end;
    if Assigned(zeiger) then
    begin
      Memo1.Lines.add(Zeiger^.Name);
      Memo2.Lines.add(Zeiger^.Kuerzel);
      Memo3.Lines.add(Zeiger^.Gegenstand);
    end
    else Application.MessageBox('Suchbegriff nicht vorhanden.','Hinweis',MB_OK);
  end
  else if (Edit3.Text <> '') and (edit2.text = '') and (edit1.text = '') then
  begin
    Zeiger:=start;
    while (Assigned(Zeiger)) and (Zeiger^.Gegenstand<> Edit3.Text) do
    begin
      Zeiger:=Zeiger^.Next;
    end;
    if Assigned(zeiger) then
    begin
      Memo1.Lines.add(Zeiger^.Name);
      Memo2.Lines.add(Zeiger^.Kuerzel);
      Memo3.Lines.add(Zeiger^.Gegenstand);
    end
    else Application.MessageBox('Suchbegriff nicht vorhanden.','Hinweis',MB_OK);
end;
LH_Freak
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 385

Win XP
D7 PE, D2k5 Trial
BeitragVerfasst: Mi 24.08.05 19:11 
Mir sagt das im Mom gar nichts
Narses
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Administrator
Beiträge: 10185
Erhaltene Danke: 1261

W11x64
TP3 .. D7pro .. D10.2CE
BeitragVerfasst: Mi 24.08.05 22:45 
Moin!

Dein Code ist eine riesig große Redundanz und total undurchsichtig. Wo ist denn da die Fehlerstelle? Und was soll der Code eingentlich tun? Vielleicht wäre die eine oder andere Deklaration hilfreich, damit man weiß, was du da überhaupt tust... :gruebel:

cu
Narses