TStrings.count
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
TStrings.count
Arkadaşlar tstrings yada tstringlist de count alamıyorum memoya
aktardığımda alabiliyorum bu tstrings yada tstringlist deki count ne işe yarıyor yada bunun içindeki satır sayısını nasıl alabilirim.
Yardımlarınız için teşekkürler
aktardığımda alabiliyorum bu tstrings yada tstringlist deki count ne işe yarıyor yada bunun içindeki satır sayısını nasıl alabilirim.
Yardımlarınız için teşekkürler
Merhaba...
- TStringList'de neden sayı alamadığınızı bilemem, kurguyu aşağıdaki gibi yapıp bir deneyin. Muhtemelen TStringList için create işlemi yapmadınız.
- TStrings'de ise olay biraz farklı işler. Variable olarak tanımladığınızda Add olsun Count olsun propertylerine direkt erişimi yoktur. TStrings tipindeki veriyi temsil eder. Örneğin sizdeki TMemo örneğideki Lines veya TListBox'ın verileri TStrings tipindedir. Onu atayarak Strings tipindeki içeriği elde edebilir görebilirsiniz. Tabi pointer bazında atama yapıldığından TStrings içeriğinde silme işlemi yaparsanız unutmamanız gereken nokta kaynak da bundan nasibini alacaktır. Çünkü atanan ve atanılan birlikte tek bir kaynak ediyor.
- Kısaca siz TStringList kullanırsanız başınız bu sorularla ağrımaz.
- TStringList'de neden sayı alamadığınızı bilemem, kurguyu aşağıdaki gibi yapıp bir deneyin. Muhtemelen TStringList için create işlemi yapmadınız.
Kod: Tümünü seç
Var
Sayac : Integer;
StringList : TStringList;
Strings : TStrings;
ListBox : TListBox;
begin
StringList := TStringlist.Create;
For Sayac := 1 to 10 do
StringList.Add( IntToStr(Sayac) );
ShowMessageFmt('StringList Eleman Sayısı = %d', [ StringList.Count ]);
StringList.Free;
ListBox := TListBox.Create(Self);
ListBox.Parent := Self;
For Sayac := 1 to 25 do
ListBox.Items.Add( IntToStr(Sayac) );
Strings := ListBox.Items;
ShowMessageFmt('Strings Eleman Sayısı = %d', [ Strings.Count ]);
Strings := Nil;
ListBox.Free;
end;
- Kısaca siz TStringList kullanırsanız başınız bu sorularla ağrımaz.
mrmarman yazdı:Merhaba...
- TStringList'de neden sayı alamadığınızı bilemem, kurguyu aşağıdaki gibi yapıp bir deneyin. Muhtemelen TStringList için create işlemi yapmadınız.
- TStrings'de ise olay biraz farklı işler. Variable olarak tanımladığınızda Add olsun Count olsun propertylerine direkt erişimi yoktur. TStrings tipindeki veriyi temsil eder. Örneğin sizdeki TMemo örneğideki Lines veya TListBox'ın verileri TStrings tipindedir. Onu atayarak Strings tipindeki içeriği elde edebilir görebilirsiniz. Tabi pointer bazında atama yapıldığından TStrings içeriğinde silme işlemi yaparsanız unutmamanız gereken nokta kaynak da bundan nasibini alacaktır. Çünkü atanan ve atanılan birlikte tek bir kaynak ediyor.Kod: Tümünü seç
Var Sayac : Integer; StringList : TStringList; Strings : TStrings; ListBox : TListBox; begin StringList := TStringlist.Create; For Sayac := 1 to 10 do StringList.Add( IntToStr(Sayac) ); ShowMessageFmt('StringList Eleman Sayısı = %d', [ StringList.Count ]); StringList.Free; ListBox := TListBox.Create(Self); ListBox.Parent := Self; For Sayac := 1 to 25 do ListBox.Items.Add( IntToStr(Sayac) ); Strings := ListBox.Items; ShowMessageFmt('Strings Eleman Sayısı = %d', [ Strings.Count ]); Strings := Nil; ListBox.Free; end;
- Kısaca siz TStringList kullanırsanız başınız bu sorularla ağrımaz.
cevabınız için teşekkür ederim yalnız sizin dediğinizi daha önce denedim yine olmadı
sorunumu daha net açıklayayım.
Kod: Tümünü seç
function HTMLParse(Bilgi:TStrings):TStrings;
var sonuc:tstringlist;
sat,bas,son:integer;
satir:string;
begin
sonuc:=tstringlist.Create;
sonuc.AddStrings(bilgi);
form1.Caption:=inttostr(sonuc.Count-1);
for sat:=0 to sonuc.Count-1 do
[quote]
bir şey yanlış gidiyor ama ne bir türlü bulamadım[/quote]
sonuc degiskenini tanıtırken tstringlist olarak değilolarak tanıt.
create ederken gene Tstringlist.Create olarak kalsın
Kod: Tümünü seç
var sonuc tstrings
create ederken gene Tstringlist.Create olarak kalsın
sonuç yine hüsran arkadaşlar her şekildede 0 satır getiriyorLost Soul yazdı:sonuc degiskenini tanıtırken tstringlist olarak değilolarak tanıt.Kod: Tümünü seç
var sonuc tstrings
create ederken gene Tstringlist.Create olarak kalsın
halbuki memoya attığımda 138
Merhaba,
Tamamen TStringList kullanmalısın TStrings lerin hepsini TStringList olarak değiştirmeni öneririm.
İyi çalışamalar.
Tamamen TStringList kullanmalısın TStrings lerin hepsini TStringList olarak değiştirmeni öneririm.
İyi çalışamalar.
Volkan KAMADAN
www.polisoft.com.tr
www.polisoft.com.tr
vkamadan yazdı:Merhaba,
Tamamen TStringList kullanmalısın TStrings lerin hepsini TStringList olarak değiştirmeni öneririm.
İyi çalışamalar.
hepsini denedim yinede olmuyor sorunun nereden kaynaklandığını tespit
ettim tstringlist yada tstings e webbrowser dan stream kullanarak veri aktarıldığı zaman tek satır içine bütün bilgiyi alıyor doğal olarak count 1
cevabı dönüyor ama işin ilginç tarafı bu bilgiyi memoya aktardığınız zaman
kayıt düzeliyor ve count gerçek değerini veriyor.
sormak istediğim memo.lines tstrings tipinde olmasına rağmen bu bilgiyi doğru alırken bir başka tstrings yada tstringliste aktardığımız zaman neden düzelmiyor da tek satır getiriyor?
teşekkürler ilgilenen arkadaşlara ama hala sorunu çözemedim.
Yapmak istediğim şey aslında çok basit ama takıldım webbrowserdan
bilgileri bir tstrings doldurup bu tstrings içinde parse edip düzgün halini
tstrings olarak çıkan bir function yazmaktı. Ama count ile satır sayısı gelmediği için parse işlemi için yazdığım function çalışamıyor çünkü ne kadar kayıt aktarırsanız aktarın count tek satır dönderiyor.
Bi de aşağıdaki şekilde deneyin
Bu kodun bilgi stringi içindeki satır sonu karakterine göre stringi satırlara bölmesi lazım.
Kod: Tümünü seç
Sonuc.Text := Bilgi;