Hatalar, hatalar, sorular - sayfa 898

 

lazarev-d-m :

Yedelkin :

sergeev : dosyanın satırları var mı?

FILE_LINE_END

Satır sonlandırıcıyı alma

Terminalin csv dosyasını bir tablo olarak değil, tüm değişkenlerin sıralandığı ve bir ayırıcı ile ayrıldığı normal bir dosya olarak algıladığını az çok anladım ve bir tablodaki gibi gezinmek için bir yazdım. csv ile çalışmak için küçük bir betik örneği, bir tablo gibi, insan bakış açısından, kulağa ne kadar garip gelse de, bugün/yarın CodeBase'e atacağım, birçok kişinin ilgileneceğini düşünüyorum

lazarev-dm, mesajım sana değil Şahsen Sergeyev için.
 
Yedelkin :

FILE_LINE_END

Satır sonlandırıcıyı alma

Sana hiçbir şey söylemeyeceğim. sen çok akıllısın.

ve dosyanın doğrusal ekranında kontrol karakterleri olduğunu anlayın. içeriğinin bazı izleyicilerinin genel kabul görmüş kurallara göre göstermesi için.

Управляющие символы — Википедия
  • ru.wikipedia.org
Управля́ющие си́мволы — элементы данной кодировки, которым не приписано графическое представление, но которые используются для управления устройствами, организации передачи данных и других целей. Сейчас для этих целей применяются форматы файлов, языки управления устройствами (такие как Postscript) и сетевые протоколы. Поэтому многие...
 
lazarev-dm :

Az ya da çok anladım, terminal csv dosyasını bir tablo olarak değil, tüm değişkenlerin sıralandığı ve bir ayırıcı ile ayrıldığı normal bir dosya olarak algılıyor.

sadece csv'ye değil, genel olarak bir dosya olan her şeye böyle davranır.
 

lazarev-d-m :

satırları yinelemek için bir mekanizma bulmanız gerekiyor,

dosyada çizgiler var mı? yeni satırı nasıl belirtirsiniz? (Özel karakterden bahsediyorum :)

dosyanın tek boyutlu bir karakter dizisi olduğunu hayal edin.

bu dizideki "yeni satır" nasıl bulunur?

 

 

FILE_LINE_END

Satır sonlandırıcıyı alma

Sergeyev : Sana hiçbir şey söylemeyeceğim. sen çok akıllısın. ve dosyanın doğrusal ekranında kontrol karakterleri olduğunu anlayın. içeriğinin bazı izleyicilerinin genel kabul görmüş kurallara göre göstermesi için.
:) "Dosyanın yeni satırı nedir? dosyanın satırları var mı?" sorularının cevaplarının olduğunu varsayalım. aldın. Sizin tarafınızdan cevap beklenmiyordu.
 
Yedelkin :
:) Dosyanın yeni satırı nedir? Dosyanın satırları var mı? aldın . Sizin tarafınızdan cevap beklenmiyordu.

tamamen kullanılan kavramlar ve bu kavramların algılanması ile ilgilidir.

bir dosyadaki " yeni satır " nedir? Bunu lazarev-dm'den öğrenmeye çalışıyorum, eğer bir cevap beklersem, o zaman bu durumda düzelteceğim ve kavramı doğru şekilde açıklayacağım. Ve sonra seni sorunu çözmen için yönlendireceğim.

bu arada lazarev-dm "yeni hat" sorulduğunda ne düşünür bilemiyorum. ve onu nasıl bulacağımı bulamıyor. Hem FileSeek hem de FileIsLineEnding ve FileRead'i bilir. Ama nedenini bilmiyor gibi görünüyor.

onun durumunda, bir tür karakteri yalnızca kaba kuvvetle bulabileceğiniz açıktır. ama yeni bir satırın sadece bir karakter olduğunu anlıyor mu - bilmiyorum.

 
sergeev : все дело в kullanılan kavramlar ve bu kavramların algılanması. bir dosyadaki " yeni satır " nedir? Bunu lazarev-dm'den öğrenmeye çalışıyorum, eğer bir cevap beklersem, o zaman bu durumda düzelteceğim ve kavramı doğru şekilde açıklayacağım. Ve sonra seni sorunu çözmen için yönlendireceğim. bu arada lazarev-dm "yeni hat" sorulduğunda ne düşünür bilemiyorum. ve onu nasıl bulacağımı bulamıyor. Hem FileSeek hem de FileIsLineEnding ve FileRead'i bilir. Ama nedenini bilmiyor gibi görünüyor. onun durumunda, bir tür karakteri yalnızca kaba kuvvetle bulabileceğiniz açıktır. ama yeni bir satırın sadece bir karakter olduğunu anlıyor mu - bilmiyorum.

Mesele şu ki, bu forum MQL5 topluluğunun forumu . Ve MQL5 dili, "dosya satırı sonlandırıcı" gibi bir kavramı ima eder:

FILE_LINE_END

Satır sonlandırıcıyı alma

Bu nedenle Lazarev'in sorusu aPsalyutnA karrektendir. MQL5 topluluğu içinde kesinlikle doğru .

 
Yedelkin :

Mesele şu ki, bu forum MQL5 topluluğunun forumu . Ve MQL5 dili, "dosya satırı sonlandırıcı" gibi bir kavramı ima eder:

Soru - söyle bana, hangi sayılar ikiye bölünebilir?

Cevap her şeydir.

Ahlaki - sonu ve neye ihtiyacınız olduğunu karıştırmayın lazarev-dm

 
sergeev : Soru - söyle bana, hangi sayılar ikiye bölünebilir? Cevap her şeydir. Ahlaki - sonu ve neye ihtiyacınız olduğunu karıştırmayın lazarev-dm
Evet. "Dosyada satırlar var mı?" Sorunuzun cevabı Zaten aldınız. Şimdi Lazarev'in sonunu ve ihtiyaçlarını karşılaştırın. :)
 
sergeev :

Soru - söyle bana, hangi sayılar ikiye bölünebilir?

Cevap her şeydir.

Ahlaki - sonu ve neye ihtiyacınız olduğunu karıştırmayın lazarev-dm

Ayrı bir satır belirlemenin yolları olduğunu fark ettim ama ona erişmek için ayrı bir komut yok, istenilen satıra ulaşmak için satır ayırıcı karakter sayısını yeniden hesaplamanız gerekiyor (satırın "numarasını" biliyorsanız)

Veya seçeneğim, özellikle yüzlerce satırın olabileceği büyük dosyalarda da uygun olmayan dosyayı satır satır taramak ve test cihazında aniden bununla karşılaşırsanız, genellikle koruyun.

İşte böyle yaptım, eğri, özgür olacağım - düzelteceğim

 MqlDateTime mqldt;
string qwerty= "EURUSD" ;
int filehandle;

void OnStart ()
  {
   filehandle= FileOpen ( "News.csv" , FILE_READ | FILE_CSV | FILE_ANSI , ';' );
   uint column1= FileReadInteger (filehandle); //Code
   string column2= FileReadString (filehandle); //Symbol
   uint column3= FileReadInteger (filehandle); //Year
   uint column4= FileReadInteger (filehandle); //Month
   uint column5= FileReadInteger (filehandle); //Day
   uint column6= FileReadInteger (filehandle); //Hour
   uint column7= FileReadInteger (filehandle); //Minute
   while (column2!=qwerty&&column3!=mqldt.year&&column4!=mqldt.mon&&column5!=mqldt.day&&column6!=mqldt.hour)
     {
   column1= FileReadString (filehandle); //Code
   column2= FileReadString (filehandle); //Symbol
   column3= FileReadInteger (filehandle); //Year
   column4= FileReadInteger (filehandle); //Month
   column5= FileReadInteger (filehandle); //Day
   column6= FileReadInteger (filehandle); //Hour
   column7= FileReadInteger (filehandle); //Minute
     }
   Alert ( "Искомое находится в " ,column1, "-й строчке" );
  }
Şimdi sürekli olarak column1=Code döndürüyor, ancak saat değerinin geçerli saatle eşleştiği satırın numarasını döndürmesi gerekiyor, sanırım bu koddan açık.