Nasihat

Cara Menghapus String Delimited Ke dalam Senarai String

Cara Menghapus String Delimited Ke dalam Senarai String


We are searching data for your request:

Forums and discussions:
Manuals and reference books:
Data from registers:
Wait the end of the search in all databases.
Upon completion, a link will appear to access the found materials.

Terdapat banyak kali apabila anda perlu memecah rentetan kepada rentetan rentetan dengan menggunakan watak sebagai pemisah. Contohnya, fail CSV ("koma" dipisahkan) mungkin mempunyai garis seperti "Zarko; Gajic; DelphiGuide" dan anda ingin baris ini dihuburkan ke dalam 4 baris (rentetan) "Zarko", "Gajic", "" ( tali kosong) dan "DelphiGuide" menggunakan aksara separa titik ";" sebagai pembatas.

Delphi menyediakan beberapa kaedah untuk mengurai rentetan, tetapi anda mungkin mendapati bahawa tiada siapa yang melakukan apa yang anda perlukan. Sebagai contoh, kaedah ExtractStrings RTL sentiasa menggunakan aksara petikan (tunggal atau berganda) untuk pembatas. Pendekatan lain adalah menggunakanDelimiter danDelimitedText sifat kelas TStrings-tetapi malangnya terdapat bug dalam pelaksanaan ("dalam" Delphi) di mana watak ruang selalu digunakan sebagai pembatas.

Satu-satunya penyelesaian untuk menghuraikan rentetan yang dibatasi adalah untuk menulis satu kaedah anda sendiri:

Contoh Rentetan Delimited

~~~~~~~~~~~~~~~~~~~~~~~~~
prosedur ParseDelimited (const sl: TStrings; const value: string; delimiter: string);
var
dx: integer;
ns: string;
txt: string;
delta: integer;
mulakan
delta: = Panjang (delimiter);
txt: = nilai + pemisah;
sl.BeginUpdate;
sl.Clear;
cuba
manakala Panjang (txt)> 0 lakukan
mulakan
dx: = Pos (delimiter, txt);
ns: = Salin (txt, 0, dx-1);
sl.Add (ns);
txt: = Salin (txt, dx + delta, MaxInt);
akhir;
akhirnya
sl.EndUpdate;
akhir;
akhir;
~~~~~~~~~~~~~~~~~~~~~~~~~

Penggunaan (mengisi dalam Memo1):
ParseDelimited (Memo1.lines, 'Zarko; Gajic ;; DelphiGuide', ';')


Tonton video itu: Cara Menambahkan Angka Nol di Awal Agar Tidak Hilang pada Ms Excel (Julai 2022).


Komen:

  1. Nern

    Saya percaya bahawa anda salah. Saya boleh membuktikannya. E -mel saya di PM.

  2. Cain

    Maksud saya awak menipu.

  3. Harlon

    Tak mungkin!

  4. Emilio

    So behold!

  5. Abdul-Aliyy

    What very good question

  6. Adolphus

    Anda telah tiba di tempat kejadian. Saya fikir ini adalah idea yang sangat bagus. Saya bersetuju sepenuhnya dengan anda.

  7. Neci

    Competent point of view, it's entertaining ...



Tulis mesej