Fetstil Fetstil Kursiv Understrykning linje färgläggning tabellverk Punktlista Nummerlista Vänster Centrerat högerställt Utfyllt Länk Bild htmlmode
  • Forum & Blog
    • Forum - översikt
      • .Net
        • asp.net generellt
        • c#
        • vb.net
        • f#
        • silverlight
        • microsoft surface
        • visual studio .net
      • databaser
        • sql-server
        • databaser
        • access
        • mysql
      • mjukvara klient
        • datorer och komponenter
        • nätverk, lan/wan
        • operativsystem
        • programvaror
        • säkerhet, inställningar
        • windows server
        • allmänt
        • crystal reports
        • exchange/outlook
        • microsoft office
      • mjukvara server
        • active directory
        • biztalk
        • exchange
        • linux
        • sharepoint
        • webbservers
        • sql server
      • appar (win/mobil)
      • programspråk
        • c++
        • delphi
        • java
        • quick basic
        • visual basic
      • scripting
        • asp 3.0
        • flash actionscript
        • html css
        • javascript
        • php
        • regular expresssion
        • xml
      • spel och grafik
        • DirectX
        • Spel och grafik
      • ledning
        • Arkitektur
        • Systemutveckling
        • krav och test
        • projektledning
        • ledningsfrågor
      • vb-sektioner
        • activeX
        • windows api
        • elektronik
        • internet
        • komponenter
        • nätverk
        • operativsystem
      • övriga forum
        • arbete karriär
        • erbjuda uppdrag och tjänster
        • juridiska frågor
        • köp och sälj
        • matematik och fysik
        • intern information
        • skrivklåda
        • webb-operatörer
    • Posta inlägg i forumet
    • Chatta med andra
  • Konto
    • Medlemssida
    • Byta lösenord
    • Bli bonsumedlem
    • iMail
  • Material
    • Tips & tricks
    • Artiklar
    • Programarkiv
  • JOBB
  • Student
    • Studentlicenser
  • KONTAKT
    • Om pellesoft
    • Grundare
    • Kontakta oss
    • Annonsering
    • Partners
    • Felanmälan
  • Logga in

Hem / Forum översikt / inlägg

Posta nytt inlägg


Infoga element i dynamisk array

Postades av 2003-03-17 21:19:04 - Tobias Ivarsson, i forum delphi, Tråden har 1 Kommentarer och lästs av 1285 personer

Jag försöker skapa en funktion som infogar ett type element i en type array (av samma type som elementet), men jag får inte detta att fungera.

I min kod finns följande funktioner:
<code>
type TFrequenceElement = record
Content:String;
Frequence:Integer;
end;

TFrequenceArray=array of TFrequenceElement;
TIntegerArray=array of Integer;


procedure ArrayInsert(var arr:TFrequenceArray;element:TFrequenceElement;pos:Integer);overload;
begin
if(pos>High(arr))then
begin
SetLength(arr,Length(arr)+1);
arr[Length(arr)-1]:=element;
end
else
begin
SetLength(arr,Length(arr)+1);
ShowMessage(inttostr(pos)+' och '+inttostr( Length(arr) - pos -2 ));
System.Move(arr[pos], arr[pos+1],
SizeOf(TFrequenceElement)* ( Length(arr) - pos -2 ) +1 );
arr[pos]:=element;
end;
end;

procedure ArrayInsert(var arr:TIntegerArray;element:Integer;pos:Integer);overload;
begin
if(pos>High(arr))then
begin
SetLength(arr,Length(arr)+1);
arr[Length(arr)-1]:=element;
end
else
begin
SetLength(arr,Length(arr)+1);
System.Move(arr[pos], arr[pos+1],
SizeOf(Integer)* ( Length(arr) - pos -2 ) +1 );
arr[pos]:=element;
end;
end;
</code>

Funktionen som behandlar Integer arrays fungerar hur bra som helst men när jag ska behandla arrays av min egendefinerade type havererar allting.


vad jag vill göra är alltså infoga ett element någonstans mitt i en array.
Jag skulle vara mycket tacksam om någon kunde hjälpa mig att få ovanstående funktion att fungera eller tala om ifall Delphi har en inbyggd funktion för detta som jag råkat missa, eller bidra med en helt annan funktion som utför samma uppgift.

Tack på förhand
/Tobias


Svara

Sv: Infoga element i dynamisk array

Postades av 2003-03-18 11:24:19 - Tobias Ivarsson

Jag löste problemet själv, bytte ut variabeln string(som ej har fast längd) mot ShortString(som har fast längd, 256byte), det kräver eventuellt lite mer minne, men det duger i min applikation.
(tack till Magnus Karlsson för tipset om datatyper med fast längd)

Koden ser nu ut såhär:
<code>
type TFrequenceElement = record
Content:ShortString;//Förändringen, tidigare: Content:String;
Frequence:Integer;
end;

TFrequenceArray=array of TFrequenceElement;

procedure ArrayInsert(var arr:TFrequenceArray;element:TFrequenceElement;pos:Integer);
begin
if(pos>High(arr))then
begin
SetLength(arr,Length(arr)+1);
arr[Length(arr)-1]:=element;
end
else
begin
SetLength(arr,Length(arr)+1);
System.Move(arr[pos], arr[pos+1],
SizeOf(TFrequenceElement)* ( Length(arr) - pos -1 ) +1 );
arr[pos]:=element;
end;
end;
</code>

/Tobias Ivarsson


Svara

Nyligen

  • 14:24 CBD regelbundet?
  • 14:23 CBD regelbundet?
  • 14:22 Har du märkt några verkliga fördel
  • 09:09 Vill du köpa medicinska tester?
  • 12:47 Vem beviljar assistansen – kommune
  • 14:17 Någon med erfarenhet av hemstädnin
  • 14:14 Bör man använda sig av en båtförme
  • 14:12 Finns det någon intressant hundblo

Sidor

  • Hem
  • Bli bonusmedlem
  • Läs artiklar
  • Chatta med andra
  • Sök och erbjud jobb
  • Kontakta oss
  • Studentlicenser
  • Skriv en artikel

Statistik

Antal besökare:
Antal medlemmar:
Antal inlägg:
Online:
På chatten:
4 569 615
27 953
271 709
559
0

Kontakta oss

Frågor runt konsultation, rådgivning, uppdrag, rekrytering, annonsering och övriga ärenden. Ring: 0730-88 22 24 | pelle@pellesoft.se

© 1986-2013 PelleSoft AB. Last Build 4.1.7169.18070 (2019-08-18 10:02:21) 4.0.30319.42000
  • Om
  • Kontakta
  • Regler
  • Cookies