AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Syntax-Frage: Einem Array mehrere Werte "aufeinmal" zuweisen
Thema durchsuchen
Ansicht
Themen-Optionen

Syntax-Frage: Einem Array mehrere Werte "aufeinmal" zuweisen

Ein Thema von STaRDoGGCHaMP · begonnen am 15. Okt 2008 · letzter Beitrag vom 15. Okt 2008
Antwort Antwort
Seite 1 von 3  1 23      
STaRDoGGCHaMP

Registriert seit: 1. Okt 2007
34 Beiträge
 
#1

Syntax-Frage: Einem Array mehrere Werte "aufeinmal"

  Alt 15. Okt 2008, 14:40
Hallo,
Folgendes Problem : Ich habe zwei Arrays (String-Arrays, jeweils 52 Indizes) und muss nun jedem Glied manuell einen Wert zuweisen. Geht das auch anders als:
Delphi-Quellcode:
array1[1] := "xxx";
array1[2] := "xxx";
array1[3] := "xxx";
irgendsowas wie
array1 := {"xxx", "xxx", "xxx"}
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.537 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: Syntax-Frage: Einem Array mehrere Werte "aufeinmal&

  Alt 15. Okt 2008, 14:42
Nimm doch eine Schleife.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
STaRDoGGCHaMP

Registriert seit: 1. Okt 2007
34 Beiträge
 
#3

Re: Syntax-Frage: Einem Array mehrere Werte "aufeinmal&

  Alt 15. Okt 2008, 14:45
Eine Schleife bringt mir recht wenig, da die Strings die in das Array sollen nicht mathematisch oder in irgend einer Art und weise zusammenhängen (es ist jetz nicht das Alphabet oder so, da wäre ja z.b. chr() hilfreich)
  Mit Zitat antworten Zitat
Sven M.

Registriert seit: 21. Okt 2006
Ort: Halle/Saale
106 Beiträge
 
Delphi 5 Enterprise
 
#4

Re: Syntax-Frage: Einem Array mehrere Werte "aufeinmal&

  Alt 15. Okt 2008, 14:48
Dann bleibt dir wohl tatsächlich nur die manuelle Zuweisung...
  Mit Zitat antworten Zitat
STaRDoGGCHaMP

Registriert seit: 1. Okt 2007
34 Beiträge
 
#5

Re: Syntax-Frage: Einem Array mehrere Werte "aufeinmal&

  Alt 15. Okt 2008, 14:53
Okay, vielen Dank für die Antwort
Ist ja auch kein Problem, sieht halt nur ein wenig komisch aus^^. Aber wenns anders nicht geht kann man nix machen, danke nochmals.
  Mit Zitat antworten Zitat
Frankfurtoder

Registriert seit: 27. Mär 2008
112 Beiträge
 
RAD-Studio 2010 Pro
 
#6

Re: Syntax-Frage: Einem Array mehrere Werte "aufeinmal&

  Alt 15. Okt 2008, 14:59
Ich wollte mal darauf hinweisen das bei diesem Code:

Delphi-Quellcode:
array1[1] := "xxx";
array1[2] := "xxx";
array1[3] := "xxx";
Der Eindruck entsteht als wolltest du das Array immer mit dem selben Inhalt füllen (hier "xxx"). Zum besseren Verständnis auch hier im Beispiel dann bitte verschiedene Werte benutzen wie zB abc, mno, xyz. So wird deutlich das es sich um verschiedene Werte handelt.

Grüße
Erik
  Mit Zitat antworten Zitat
Benutzerbild von bernau
bernau

Registriert seit: 1. Dez 2004
Ort: Köln
1.268 Beiträge
 
Delphi 11 Alexandria
 
#7

Re: Syntax-Frage: Einem Array mehrere Werte "aufeinmal&

  Alt 15. Okt 2008, 15:10
Kannst folgende procedure verwenden.

Delphi-Quellcode:
procedure AssignStringArrayValues(var aStringArrayTarget: array of string;aStringArraySource: array of string);
var
  lTargetIndex:Integer;
  lSourceIndex:Integer;
begin
  lTargetIndex:=Low(aStringArrayTarget);
  lSourceIndex:=Low(aStringArraySource);

  while (lTargetIndex<=high(aStringArrayTarget)) and
        (lSourceIndex<=high(aStringArraySource)) do
    begin
       aStringArrayTarget[lTargetIndex]:=aStringArraySource[lSourceIndex];
       Inc(lTargetIndex);
       Inc(lSourceIndex);
    end;
end;
Dann kannst du so die Daten zuweisen

Delphi-Quellcode:

var
  myArray:array[3..5] of string;
begin
  AssignStringArrayValues(myArray,['asdasd','asdasd']);
end;

Ungetestet.
Gerd
Kölner Delphi Usergroup: http://wiki.delphitreff.de
  Mit Zitat antworten Zitat
Benutzerbild von Neutral General
Neutral General

Registriert seit: 16. Jan 2004
Ort: Bendorf
5.219 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#8

Re: Syntax-Frage: Einem Array mehrere Werte "aufeinmal&

  Alt 15. Okt 2008, 15:19
Hi bernau

Ich glaube den Code kann man noch extrem vereinfachen:

Delphi-Quellcode:
procedure FillArray(var Dest: Array of String; Source: Array of String);
begin
  Move(Source[Low(Source)],Dest[Low(Dest)],Length(Dest)*4);
end;


var arr: Array[3..7] of String;
begin
  FillArray(arr,['Hallo','Welt','!','DelphiPraxis','!']);
end;
Aber gute Idee!
Auf die Idee wäre ich nicht gekommen. Mich ärgert das z.T. auch

Gruß
Neutral General
Michael
"Programmers talk about software development on weekends, vacations, and over meals not because they lack imagination,
but because their imagination reveals worlds that others cannot see."
  Mit Zitat antworten Zitat
Benutzerbild von bernau
bernau

Registriert seit: 1. Dez 2004
Ort: Köln
1.268 Beiträge
 
Delphi 11 Alexandria
 
#9

Re: Syntax-Frage: Einem Array mehrere Werte "aufeinmal&

  Alt 15. Okt 2008, 15:33
Zitat von Neutral General:
Ich glaube den Code kann man noch extrem vereinfachen:
Ja bestimmt. Ich hatte es aber nur so runtergeschrieben. War mir aber nicht sicher, ob der index von myArray in der procedure nun mit 3 anfängt oder mit 0. Ist ja z.B. mit [3..5] deklariert. Deshalb habe ich jedem array einen eigenen index zugewiesen und jeweils geprüft, ob dieser sich im Wertebereich befindet.

Bis denne.
Gerd
Kölner Delphi Usergroup: http://wiki.delphitreff.de
  Mit Zitat antworten Zitat
Benutzerbild von bernau
bernau

Registriert seit: 1. Dez 2004
Ort: Köln
1.268 Beiträge
 
Delphi 11 Alexandria
 
#10

Re: Syntax-Frage: Einem Array mehrere Werte "aufeinmal&

  Alt 15. Okt 2008, 16:01
Zitat von Neutral General:
Move(Source[Low(Source)],Dest[Low(Dest)],Length(Dest)*4);
Helf mir mal. Vieleicht habe ich ja einen Gedankenfehler aber hierbei werden doch nur die Zeiger der Strings kopiert.

1) Was ist, wenn Dest schon gefüllt ist. Die Pointer werden doch einfach überschrieben. Leckt da der Speicher nicht etwas.

2) Du weist Pointer von Source zu, die nach Ablauf der Procedure gar nicht mehr gültig sind.
Gerd
Kölner Delphi Usergroup: http://wiki.delphitreff.de
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 3  1 23      


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 08:34 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