Работа с массивами
Code: |
function ArrayToStr(str: TStrings; r: string): string; var i: integer; begin Result:=''; if str = nilthen Exit; for i := 0to Str.Count-1do Result := Result + Str.Strings[i] + r; end; |
- Подробности
- Родительская категория: Язык программирования Дельфи
- Категория: Работа с массивами
В следущем примере результате должен получится файл c:\test.txt такого содержания: 123456789
поскольку числа с 49 до 51 являются ASCII-кодами этих чисел, а соответственно и являются их символьным представлением.
- Подробности
- Родительская категория: Язык программирования Дельфи
- Категория: Работа с массивами
Code: |
//Some Array-functions like in PHP. type ArrOfStr = arrayofstring; implementation function explode(sPart, sInput: string): ArrOfStr; begin |
- Подробности
- Родительская категория: Язык программирования Дельфи
- Категория: Работа с массивами
Code: |
Procedure AssignFixedString( Var FixedStr: Arrayof Char; Const S: String ); Var maxlen: Integer; Begin maxlen := Succ( High( FixedStr ) - Low( FixedStr )); FillChar( FixedStr, maxlen, ' ' ); { blank fixed string } If Length(S) > maxlen Then Move( S[1], FixedStr, maxlen ) Else Move( S[1], FixedStr, Length(S)); End; |
- Подробности
- Родительская категория: Язык программирования Дельфи
- Категория: Работа с массивами
Code: |
procedure TForm1.Button1Click(Sender: TObject); var DataField: TStrings; begin DataField := TStringList.Create; DataField.Add(Format('%s=%s', ['Jonas', '15.03.1980'])); ShowMessage(DataField.Values['Jonas']) // will print the Birthday of Jonas DataField.Free; end; |
https://delphiworld.narod.r
DelphiWorld 6.0
- Подробности
- Родительская категория: Язык программирования Дельфи
- Категория: Работа с массивами
ДляпреобразованияTMemoryStreamвarray of Byteможноиспользоватьследующийкод:
Code: |
procedure TForm1.Button1Click(Sender: TObject); {©Drkb v.3(2007): www.drkb.ru} var M: TMemoryStream; Buff: arrayof Byte; begin M := TMemoryStream.Create; try M.LoadFromFile('c:\test.htm'); SetLength(Buff, M.Size); M.Position := 0; M.Read(Buff[0], M.Size); finally M.Free; end; end; |
- Подробности
- Родительская категория: Язык программирования Дельфи
- Категория: Работа с массивами
Code: |
type RecType = integer; {<-- здесь задается тип элементов массива}
const MaxRecItem = 65520div sizeof(RecType);
type = MyArrayType = array[0..MaxRecItem] of RecType; type = MyArrayTypePtr = ^MyArrayType;
var MyArray: MyArrayTypePtr; begin ItemCnt := 10; {количество элементов массива, которые необходимо распределить} GetMem(MyArray, ItemCnt * sizeof(MyArray[1])); {распределение массива} MyArray^[3] := 10; {доступ к массиву} FreeMem(MyArray, ItemCnt * sizeof(MyArray[1])); {освобождаем массив после работы с ним} end; |
Michael Day
Взято из Советов по Delphi от Валентина Озерова
Сборник Kuliba
- Подробности
- Родительская категория: Язык программирования Дельфи
- Категория: Работа с массивами
Скажем, ваша структура данных выглядит следующим образом:
Code: |
type TMyRec = record SomeField: Integer; SomeOtherField: Double; TheRest: array[0..99] of Single; end; |
- Подробности
- Родительская категория: Язык программирования Дельфи
- Категория: Работа с массивами
Представим, что данные находятся в массиве:
Code: |
TestArray : array[0..127, 0..127] of Byte; |
- Подробности
- Родительская категория: Язык программирования Дельфи
- Категория: Работа с массивами
Code: |
procedure TForm1.Button1Click(Sender: TObject); type T2DIntArray = arrayofarrayof Integer; var DynArray: T2DIntArray; V: Variant; i, k: Integer; begin V := VarArrayCreate([0, 1, 0, 1], varInteger); V[0, 0] := 00; V[0, 1] := 01; V[1, 0] := 10; V[1, 1] := 11; DynArrayFromVariant(Pointer(Dynarray), V, TypeInfo(T2DIntArray)); for i := 0to High(Dynarray) do for k := 0to High(Dynarray[i]) do memo1.Lines.add(IntToStr(DynArray[i, k])); end;
{ The problem with DynArrayFromVariant is that you can only use it on variant arrays with 0-based indexes, trying to use it on an array with 1 as lower bound blows up. Since the documentation is silent on that i would consider it a bug. } |
- Подробности
- Родительская категория: Язык программирования Дельфи
- Категория: Работа с массивами
Code: |
//к примеру опишем свой тип type MyType = record zap1: longword; zap2: char; zap3: string[10]; end; //опишем НЕОГРАНИЧЕННЫЙ массив переменный типа MyType //хотя, может использоваться абсолютно любой var m: arrayof MyType; .... procedure TForm1.Button1Click(Sender: TObject); var i: byte; begin for i := 0to9do// нумерация элементов начинается с нуля! begin SetLength(m, Length(m) + 1); // увеличение длины массива на 1 m[i].zap1 := i; // присвоение m[i].zap2 := chr(i); // полям m[i].zap3 := inttostr(i); // значений end; end; .... SetLength(m, 0); // освобождение памяти end. |
C Уважением,
Сергей Дьяченко, sd arzamas.nnov.ru
Взято из Советов по Delphi от
- Подробности
- Родительская категория: Язык программирования Дельфи
- Категория: Работа с массивами
Страница 1 из 2