Forum > Spanish
iteradoras en pascal
zelda16bit:
--- Quote from: TRon on February 22, 2023, 08:57:41 am ---@KodeZwerg: Thank you !
@zelda16bit:
your question translates for me to
--- Quote ---As it would be with a class.
--- End quote ---
In combination with your code the remark that you made does not make any sense to me so I have no idea what exactly you are asking for or are referring to.
Translated with an online translator to Spanish:
--- Quote ---En combinación con su código, el comentario que hizo no tiene ningún sentido para mí, así que no tengo idea de qué es exactamente lo que está pidiendo o a lo que se refiere.
--- End quote ---
--- End quote ---
Lo que estaba preguntando es que en vez de crear una lista de enteros,para añadir datos enteros se creara una lista de objetos,y ver como añadir esos objetos a la lista, y luego ver como se itera sobre esa lista de objetos.
Por eso mostraba una clase hipotetica para añadir a esa lista,pero mi respuesta del principio a quedado respondida ya que veo que en pascal no hace falta ningun iterador especial para recorrer la lista,con el bucle "for in" es suficiente,al menos es la conclusion que saco al ver los ejemplos mostrados.Gracias :)
zelda16bit:
--- Quote from: KodeZwerg on February 22, 2023, 11:45:04 am ---
--- Code: Pascal [+][-]window.onload = function(){var x1 = document.getElementById("main_content_section"); if (x1) { var x = document.getElementsByClassName("geshi");for (var i = 0; i < x.length; i++) { x[i].style.maxHeight='none'; x[i].style.height = Math.min(x[i].clientHeight+15,306)+'px'; x[i].style.resize = "vertical";}};} ---program Project1;{$IFDEF MSWINDOWS}{$APPTYPE CONSOLE}{$ENDIF} {$mode objfpc} uses Generics.Collections; type { TCustomList } TIntegerList = specialize TList<integer>; TCustomList = class(TObject) strict private FCount: Integer; FIndex: Integer; FCurrent: Integer; FList: TIntegerList; private procedure SetCount(const AValue: Integer); procedure SetIndex(const AValue: Integer); function GetCurrent: Integer; procedure SetCurrent(const AValue: Integer); public constructor Create; destructor Destroy; override; procedure Add(const AValue: Integer); procedure Show; procedure Remove(const AIndex: Integer); published property Count: Integer read FCount write SetCount default 0; property Index: Integer read FIndex write SetIndex default -1; property Current: Integer read GetCurrent write SetCurrent default -1; end; { begin TCustomList }constructor TCustomList.Create;begin inherited Create; FList := TIntegerList.Create; FCount := 0; FIndex := -1; FCurrent := -1;end; destructor TCustomList.Destroy;begin FList.Free; FList := nil; inherited Destroy;end; procedure TCustomList.SetIndex(const AValue: Integer);begin if ((AValue >= 0) and (AValue < FCount)) then FIndex := AValue else FIndex := -1;end; function TCustomList.GetCurrent: Integer;begin if ((FIndex >= 0) and (FIndex < FCount)) then Result := FList.Items[FIndex] else Result := -1;end; procedure TCustomList.SetCurrent(const AValue: Integer);begin if ((FIndex >= 0) and (FIndex < FCount)) then FList.Items[FIndex] := AValue;end; procedure TCustomList.SetCount(const AValue: Integer);var i: Integer;begin if (FCount = 0) then Exit; if (AValue < FCount) then for i := Pred(FCount) downto AValue do FList.Delete(i); FCount := FList.Count; FIndex := Pred(FCount);end; procedure TCustomList.Add(const AValue: Integer);begin FList.Add(AValue); FCount := FList.Count; FIndex := Pred(FCount);end; procedure TCustomList.Remove(const AIndex: Integer);begin if (FCount = 0) then Exit; if ((AIndex >= 0) and (AIndex < FCount)) then FList.Delete(AIndex); FCount := FList.Count; FIndex := Pred(FCount);end; procedure TCustomList.Show;var i: Integer;begin if (FCount = 0) then Exit; for i in FList do WriteLn(i);end;{ end TCustomList } var List: TCustomList; i: integer;begin List := TCustomList.Create; try WriteLn('Add 10 elements'); for i := 0 to 9 do List.Add(i); WriteLn('Show all elements'); List.Show; WriteLn('Remove last 5 elements'); List.Count := List.Count - 5; WriteLn('Show all elements'); List.Show; WriteLn('Change value of element 3 to 99'); List.Index := 2; List.Current := 99; WriteLn('Show all elements'); List.Show; finally List.Free; end; {$IFDEF MSWINDOWS}ReadLn; {$ENDIF}end.¿Supongo que querías esta lista en una clase?
--- Quote ---I assume you wanted this list in a class?
--- End quote ---
--- End quote ---
No es exactamente lo que estaba preguntando y nunca habia hecho este tipo de codigo pero me sirve para aprender algo nuevo,no pregunto mas porque se esta liando mucho este hilo y se esta alejando de la pregunta inicial.Gracias por la ayuda :)
Navigation
[0] Message Index
[*] Previous page