Tavsiyeler

Sınırlandırılmış bir dize bir dize listesine ayrıştırma

Sınırlandırılmış bir dize bir dize listesine ayrıştırma


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.

Ayırıcı olarak bir karakter kullanarak bir dizeyi bir dizgilerin dizisine bölmeniz gerektiğinde birçok kez vardır. Örneğin, bir CSV ("virgül" ile ayrılmış) bir dosyada "Zarko; Gajic ;; DelphiGuide" gibi bir satır olabilir ve bu satırın 4 satırda (dizeler) "Zarko", "Gajic", "" (satırlar) olarak ayrılmasını isteyebilirsiniz. boş dize) ve "DelphiGuide" noktalı virgül karakterini kullanarak ";" sınırlayıcı olarak.

Delphi bir dizgeyi ayrıştırmak için çeşitli yöntemler sunar, ancak ikisinin de tam olarak ihtiyacınız olanı yapmadığını görebilirsiniz. Örneğin, ExtractStrings RTL yöntemi sınırlayıcılar için her zaman alıntı karakterlerini (tek veya çift) kullanır. Başka bir yaklaşım kullanmaktır.Sınırlayıcı veDelimitedText TStrings sınıfının özellikleri - ama ne yazık ki, boşluk karakterinin her zaman sınırlayıcı olarak kullanıldığı uygulamada ("inside" Delphi) bir hata var.

Sınırlandırılmış bir dizgeyi ayrıştırmanın tek çözümü kendi yönteminizi yazmaktır:

Sınırlandırılmış Dize Örneği

~~~~~~~~~~~~~~~~~~~~~~~~~
yordam ParseDelimited (const sl: TStrings; const value: string; const delimiter: string);
var
dx: tamsayı;
ns: string;
txt: string;
delta: tamsayı;
başla
delta: = Uzunluk (sınırlayıcı);
txt: = değer + sınırlayıcı;
sl.BeginUpdate;
sl.Clear;
Deneyin
süre Uzunluk (txt)> 0 yapın
başla
dx: = Pos (sınırlayıcı, txt);
ns: = Kopyala (txt, 0, dx-1);
sl.Add (ns);
txt: = Kopyala (txt, dx + delta, MaxInt);
son;
en sonunda
sl.EndUpdate;
son;
son;
~~~~~~~~~~~~~~~~~~~~~~~~~

Kullanımı (Memo1’de doldurur):
ParseDelimited (Memo1.lines, 'Zarko; Gajiç ;; DelphiGuide', '')


Videoyu izle: Excelde aynı sütundaki bütün hücrelerin başına sonuna aynı karakter ekle (Temmuz 2022).


Yorumlar:

  1. Mabuz

    Üzgünüm, sana hiçbir şey konusunda yardım edemem. Bence doğru çözümü bulacaksın. Umutsuzluğa kapılma.

  2. Dearg

    Tebrikler, harika fikir

  3. Yojar

    İş yerinde oturmak güzel. Bu sıkıcı işten uzaklaşın. Rahatlayın ve buradan yazılan bilgileri okuyun :)



Bir mesaj yaz