StringStream

asdfghjkl

Mihin TStringStream käytetään (eli mihin se soveltuu hyvin)?

4

542

    Vastaukset

    Anonyymi (Kirjaudu / Rekisteröidy)
    5000
    • Mika0800

      TStringStream

      Mikset kirjoita koodiisi vaikkapa:

      var

      S1 : TStringStream;

      sitten vain klikkaat sanaan TStringStream ja painat Ctrl-F1.

      Delphissä on hyvä online -opastejärjestelmä, jota kannattaa käyttää.

      toki täytynee mainita, etten muista kertaakaan itse käyttäneeni TStringStream -tyyppiä vaikka Delphillä olenkin ohjelmoinut.

      Ja ainakin Delphi7:ssä tuon luokan toteutuksessa on sitäpaitsi virhe !

      Seek -metodista löytyy tällaista:

      case Origin of
      soFromBeginning: { katso lähdekoodista }
      soFromCurrent: { katso lähdekoodista }
      soFromEnd: FPosition := Length(FDataString) - Offset;
      end;

      Ohjeen mukaan tuossa soFromEnd -tapauksessa Offsetin on oltava

      • Delphi koodari

        Offset on datatyyppiä word, jonka lukualue on
        0-65535, joten koodissa ei ole virhettä.

        Streamit ovat käteviä, jos dataa pitää käsitellä nopeasti tai datan määrä on suuri.


    • StringList <> StringS...

      Miten sitten StringList eroaa StringStream:stä
      (mitkä on niiden suurrimmat erot)

      • Mika0800

        Delphin omasta Helpistä löytyy toki vastaus tuohonkin.

        Lisäksi Classes.pas -tiedostosta on noiden lähdekoodikin tutkittavissa.

        Tässäkin ketjussa jonkun on taas pitänyt päteä "tiedoillaan" jotka eivät edes pidä paikkaansa:

        function Seek(Offset: Longint; Origin: Word): Longint; overload; virtual;
        function Seek(const Offset: Int64; Origin: TSeekOrigin): Int64; overload; virtual;

        tässä noiden TStream (josta TStringStream periytyy) -luokan metodimäärittelyjä - kuten selkeästi nähdään, niin Origin on toki tyyppiä word, mutta sehän voi olla vain jokin näistä kiinteistä arvoista:

        JOKO: soBeginning, soCurrent, soEnd
        TAI:
        soFromBeginning = 0;
        soFromCurrent = 1;
        soFromEnd = 2;

        (kätevä tuo overload - eikö ?)

        Sensijaan Offset on etumerkillistä tyyppiä, ja jos esim. haluat lukea Streamin 2 viimeistä tavua, se todellakin hoituu näin:

        var
        S1:TStream;
        W : Word;


        begin
        // koodia, jossa luodaan S1

        // ....

        //
        S1.Seek(-2, soEnd);
        // vaihtoehtoisesti voi toki myös:
        // S1.Position := S1.Size - 2;

        S1.ReadBuffer(W, SizeOf(W));

        // vapauta;
        FreeAndNil(S1);
        end;


    Ketjusta on poistettu 0 sääntöjenvastaista viestiä.

    Luetuimmat keskustelut

    1. Eduskunnan setämiehet eivät häiritse

      Porvariston sedät kertoivat kuorossa, että eivät tiedä häirinnästä mitään.
      Maailman menoa
      237
      7080
    2. Jaguar i pace sähköauto hajosi. Jopa 100 tonnia akun vaihto. Edullisia kilometrejä

      https://www.iltalehti.fi/autouutiset/a/fcaa5ae4-c04d-414d-ac54-dab991758b2e Tuo että sähköautossa ei lämmitys toimi on
      Hybridi- ja sähköautot
      30
      3716
    3. PropsApp Koodi

      Haluatko ansaita ja kilpailla fiksusti samalla kun seuraat urheilua? Props tekee sen mahdolliseksi. Sovelluksessa pääset
      2
      3288
    4. Persut yrittävät epätoivon vimmalla

      kiertää häirintä asian https://www.iltalehti.fi/politiikka/a/5389f072-60d9-4ef8-aa7b-c11f0eda66cf jonka muut puolueet a
      Maailman menoa
      66
      3061
    5. Muistakaa demarit, että TE petitte, ei vihreät tai vas.liitto

      Te veitte eduskunnasta turvallisen tilan, veditte sen viemäristä alas. Te demarit, itsensä ylentäneet moraalinvartijat,
      Maailman menoa
      99
      2743
    6. Tämä on persut

      Persut kannattavat koko Suomen alueiden luovuttamista Venäjälle. Kannattavat myöskin väestönvaihtoa suomalaisten ja ven
      Maailman menoa
      5
      2633
    7. IL: "Kyykyttämistä, alistamista, painostamista, huutamista ja tiuskimista SDP:n

      eduskuntaryhmässä." Häirintäkohu puolueen ympärillä paisuu. Iltalehden haastattelemien SDP-lähteiden mukaan eduskunta-
      Maailman menoa
      39
      2383
    8. Riikka runnoo: konkursseja eniten 30 vuoteen

      Vuonna 2025 Suomessa haettiin konkurssiin yhteensä 3 906 yritystä. Konkurssiluku oli suurin sitten vuoden 1996.
      Maailman menoa
      41
      2136
    9. Oletko ollut

      Oletko omasta mielestäsi ollut sokea asioille?
      Ikävä
      59
      1871
    10. Pitäiskö meidän tehdä jotain

      Mennä vaikka kihloihin?
      Ikävä
      96
      1791
    Aihe