AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Stringgrid Spielerei... Fragen!

Ein Thema von mr_emre_d · begonnen am 15. Dez 2007 · letzter Beitrag vom 15. Dez 2007
Antwort Antwort
mr_emre_d
(Gast)

n/a Beiträge
 
#1

Stringgrid Spielerei... Fragen!

  Alt 15. Dez 2007, 02:21
Hallo liebes Community

Ich wollte mal heute mit einem neuen Komponenten arbeiten, mit dem ich noch nie etwas am Hut gehabt
ich speichere in ein array -->( namen:array[0..4] of string ein paar Namen ab ( zb. 'Peter Lustig' ).
Dann will ich, dass die jeweiligen Namen in 2 teilen aufgesplittet werden vn (vorname) =Peter & nn (nachname)=Lustig.
Soweit,so gut!
Wenn ich die vn bzw nn einfügen will, erscheint im Stringgrid an der bestimmten Stelle etwas Komisches...
Kann sein das beim splitten etwas schief gegangen ist :S
hier der code:

Delphi-Quellcode:
var i,j:integer;
 vn,nn,name:string;
......
 for j := 0 to 4 do begin
    for i := 0 to length(namen[j]) do begin
    name:=namen[j];
      if name[i]=' then begin
         vn:=copy(name,0,length(name[i])-1);
         nn:=copy(name,length(name[i])+1,length(name));
         //nn:=delete(name,0,length(vn)+2); --> so müsste das eigentlich auch gehen aber funzt ned.. :(
      end;
    end;
    stringgrid1.Cells[2,j+1]:=vn;
    stringgrid1.Cells[3,j+1]:=nn;
  end;
  Mit Zitat antworten Zitat
Benutzerbild von Martin K
Martin K

Registriert seit: 20. Okt 2005
919 Beiträge
 
Turbo Delphi für Win32
 
#2

Re: Stringgrid Spielerei... Fragen!

  Alt 15. Dez 2007, 02:33
1.
Das erste Element eines Strings hat den Index 1, nicht 0.
Die innere Schleife müsste also so aussehen:
for i := 1 to length(namen[j]) do 2.
length(name[i]) gibt dir sehr Wahrscheinlich immer 1 zurück, da name[i] nur ein Zeichen (des Strings) ist
Wenn du den String von 1 bis zur Position i-1 haben willst, müsste das wohl so aussehen:
copy(name, 1, i - 1); Überlege selbst, wie nun das zweite Copy aussehen müsste.

3. Tipps:
Du kannst dir das Leben viel einfacher machen, denn es gibt die Funktion:
function Pos(const substr: string; const str: string): Integer; Diese gibt dir die Position eines Substrings in einem String zurück.
Du könntest z.B. ' ' (Leerzeichen) als Substring übergeben und sparst dir somit die innere Schleife
i := Pos(' ', name);
Mit den Menschen ist es wie mit Computern -
es gibt Nullen und Einsen.
  Mit Zitat antworten Zitat
mr_emre_d
(Gast)

n/a Beiträge
 
#3

Re: Stringgrid Spielerei... Fragen!

  Alt 15. Dez 2007, 02:44
vielen dank,funzt..
Delphi-Quellcode:
  for j := 0 to 4 do begin
    for i := 1 to length(namen[j]) do begin
    name:=namen[j];
      if name[i]=' then begin
         vn:=copy(name,1,i-1);
         nn:=copy(name,i+1,length(name));
         //nn:=delete(name,1,length(vn)+2);
      end;
    end;
    stringgrid1.Cells[2,j+1]:=vn;
    stringgrid1.Cells[3,j+1]:=nn;
  end;
ich werd wohl nächstes Mal nicht mehr so spät programmieren..
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:19 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz