Entwickler-Ecke

Dateizugriff - Arrays wie bei php


Pipecheck - So 23.06.02 20:09
Titel: Arrays wie bei php
...und wieder mal der Pipecheck der mit seiner Penetranten Art mit seinen Fragen nervt :D

okay, wer des php's mächtig ist, kenn die Arrays (sonst ist man nciht des php mächtig *g*) ein beispiel: ich habe es Satz: er will fi****. in einem Array sieht das dann so aus er|will|fi**** . jetzt kann ich jden Teil einzeln anfordern, und auch jedeen Teil einzeln aus einer txt raus lesen. Geibts das auch bei Delphi??? oder zumindestens etwas zweckverwandtes. Ich habe nämlich 12 Datein mit Zahlwerten, und das wollt ich gerne in einer haben....
....so long...
danke im Voraus


MathiasH - So 23.06.02 21:22

klar geht das
1.alle Dateien laden(am simpelsten gehts in memos)
2.entsprechende zeilen zammklamüseln
3.und den ganzen mist in eine Ausgabedatei speichern

Hilfen:
>LAden/Speichern mit Memo1.Lines.LoadFromFile oder halt Savetofile
>Auf eine Zeile wird mit Memo1.Lines[zeilenindex] zugegriffen
>und mit Memo1.Lines.add(
text
) fügst du eine neue Zeile hinzu.


Mathias


Pipecheck - So 23.06.02 21:41

hm, bei php isses zwar einfacher, aber ich habe es geschnickt....danke schön!!! :D


Pipecheck - So 23.06.02 22:22

...halt eine Frage hätt ich dann noch:
jetzt fügst du ja immer eine Zeile dazu, aber was iss wenn zum bespiel die Urhzeit die ersten 3 Zeilen hat und das datum wiederum 3 Zeilen. ich muss die Sekunden immer auf die erste Stelle bringen, die Stunden immer wieder auf die 2. Zeile.
Wie kann ich sagen auf welche Zeile das ganze soll???


MathiasH - Mo 24.06.02 14:54

hä?

auf eine bestimmte Zeile greift man wiegesagt mit Lines[
#nummer
#] zu (schreib-und Lesezugriff)
und mit dem Befehl copy(siehe Hilfe) kannst du den String zerschnippseln.

übrigens das bild sieht ja ganz toll aus, aber dauerend in der Signatur?!?


wulfskin - Mi 08.01.03 15:56

Hallo Pipecheck!

Ich habe mir diese Funktionen mal selber gebastelt!
Hier der Code:

Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
type
  TStrArray = Array of String;

function Implode(Trennzeichen: String; Inhalt: TStrArray): String;
var
  I: Integer;
begin
  result := '';
  for I := Low(Inhalt) to High(Inhalt) do
    result := result + Trennzeichen + Inhalt[i];
  result := Copy(result, Length(Trennzeichen) + 1, Length(result));
end;

procedure Explode(const Trennzeichen, Zeichenkette: String; out StrArray: TStrArray);
var
  I: integer;
  S, T: String;
begin
  S := Zeichenkette;
  T := Trennzeichen;
  if Copy(S, 1, Length(T)) = T then
    Delete(S, 1, Length(T));
  if Copy(S, Length(S) - Length(T) + 1, Length(T)) = T then
    Delete(S, Length(S) - Length(T) + 1, Length(T));
  I := 1;
  while Pos(T, S) > 0 do begin
    SetLength(StrArray, I);
    StrArray[I - 1] := Copy(S, 1, Pos(T, S) - 1);
    Delete(S, 1, Pos(T, S) + Length(T) - 1);
    Inc(I);
    if Pos(T, S) = 0 then begin
      SetLength(StrArray, I);
      StrArray[I - 1] := S;
      exit;
    end;
  end;
end;
Gruß Hape!