Jede Anfängerfrage, um das Forum nicht zu überladen. Fachleute, gehen Sie nicht vorbei. Nirgendwo ohne dich - 6. - Seite 715

 
ALXIMIKS:

Wenn sich die Daten geändert haben, sollten wir den Zeiger auf die Stelle setzen, an der wir sie mit fileseek überschreiben wollen, sie mit der Standardmethode filewrite... überschreiben, uns das Ende der Datei merken und sie mit der WinApi-Funktion abschneiden

Oder Sie verwenden die Standardmethode, indem Sie die Position an das Ende der Datei schreiben, wo die nützlichen Informationen enden, und dann diese Position lesen. (Sie können die Position in eine andere Datei schreiben).

Auf jeden Fall sollte man sie besser trimmen, und es gibt kein Standardwerkzeug zum Trimmen ((

das istZhunko12.09.2014 20:19#

Es wäre interessant, die gleichen WinApi-Funktionen zu haben.

Wie traurig, es ist so kompliziert.

 
Gibt es ein einfaches Beispiel für das Überschreiben einer Zeichenfolge?
 
VOLDEMAR:
Gibt es ein einfaches Beispiel für das Umschreiben einer Zeichenkette?
Was gibt es an dem Beispiel in der Hilfe nicht zu mögen?
 
AlexeyVik:
Was ist an dem Beispiel in der Hilfe falsch?
Entweder ist es kompliziert oder es funktioniert nicht ...
 

Helfen Sie, das Skript zu bearbeiten, um den Bericht in das Diagramm zu übertragen. Ich kann den Grund nicht finden, warum es nicht gerendert wird...

Link zur Codebase.

Eine leicht abgeänderte Version habe ich im Trailer. |

\ | /

\ /

\/

Dateien:
 

int RegisterWindowMessageA (string param);

Es gibt wahrscheinlich ein Problem damit, wir müssen daran herumtüfteln.

 
Heroix:

Helfen Sie, das Script zu bearbeiten, um den Bericht in das Diagramm zu übertragen. Ich kann den Grund nicht finden, warum es nicht gerendert wird...

Der Link verweist auf die Codebasis.

Leicht veränderte Version von mir im Trailer.

1. Im Import gibt es keine PostMessageA, aber im Code ist eine vorhanden.

2. Format hat sich in der Kommunikation mit api geändert (hier ist ein Beispiel, das funktioniertPavlick28.07.2014 17:24#)

 

Guten Tag, bitte helfen Sie mir. Ich verwende einen CCI-Indikator mit Periode 34 und mit Periode 170. Ich muss prüfen, ob der CCI 170 die Nulllinie des CCI 34 kreuzt. Mit anderen Worten, ich möchte sehen, wann der CCI 34 die Nulllinie zuerst und der CCI 170 die Nulllinie danach kreuzt. In diesem Moment kann der CCI 170 jeden beliebigen Wert annehmen, und die Nulllinien dieser Indikatoren fallen im Diagramm nicht zusammen.

Wie kann ich das tun? Muss ich grafische Operatoren verwenden? Welche und wie? Vielen Dank im Voraus.

 
VOLDEMAR:
Entweder ist es kompliziert oder es funktioniert nicht.

Worin besteht die Schwierigkeit? Einen Dateizeiger an den Anfang der Zeichenkette setzen? Oder das Lesen von Zeilen durch Schreiben ersetzen?

Hier haben Sie einen Hinweis.

r772ra:

FileSeek() zu helfen.

Holen Sie sich von der Hilfe:

//--- откроем файл
   int file_handle=FileOpen(InpDirectoryName+"//"+InpFileName,FILE_READ|FILE_TXT|InpEncodingType);
//////////////////////////////////

//--- получим позицию начала для каждой строки в файле
      GetStringPositions(file_handle,pos);
// Эту функцию возьми в справке.
///////////////////////////////////////

//--- сдвинем позицию на начало этой строки
      if(FileSeek(file_handle,pos[ind],SEEK_SET)==true)
// Здесь надо pos[ind] заменить на ArrayMaximum(). Это будет последняя строка.

////////////////////////////////////

//--- прочитаем и распечатаем строку с номером ind
         PrintFormat("Текст строки с номером %d: \"%s\"",ind,FileReadString(file_handle));
// А это замени на uint  FileWrite()
///////////////////

 
Zeta:

Guten Tag, bitte helfen Sie mir. Ich verwende einen CCI-Indikator mit Periode 34 und mit Periode 170. Ich muss prüfen, ob der CCI 170 die Nulllinie des CCI 34 kreuzt. Mit anderen Worten, ich möchte den Moment verfolgen, 1.wenn der CCI 34 die Nulllinie zuerst kreuzt, und dann der CCI 170 die Nulllinie kreuzt. Zu diesem Zeitpunkt kann der CCI 170 jeden beliebigen Wert annehmen, da die Nulllinien dieser Indikatoren auf dem Diagramm nicht zusammenfallen.

Wie kann ich das tun? 2.Muss ich Diagrammoperatoren verwenden? Welche und wie? Vielen Dank im Voraus.


2. Warum?iCCI(......);

Eine Möglichkeit ist:

1. Einen Zähler starten. Ein oder zwei sind optional.

Als nächstes der Algorithmus für einen Zähler:

1. initialisieren 0.

Ermitteln Sie, wann der CCI(34)-Nulldurchgang erfolgt, und lösen Sie einen Zähler aus. Zum Beispiel, wenn Kreuzung UP, dann +1, wenn DN -1.

3. wenn Zähler = 0 - auf den nächsten Balken warten.

4. Wenn der Zählerwert von 0 abweicht - Prüfung auf CCI(170)-Durchgang.

4.1 Wenn keine Überkreuzung stattgefunden hat, erhöhen Sie den Zählerwert UP/verringern Sie den Zählerwert DN.

4.1 Wenn UP - Prüfen Sie den Zählerwert: wenn er von Null abweicht und kleiner als der erforderliche Wert ist (z. B. erwarten wir einen CCI(170)-Durchgang innerhalb von 5 Takten nach einem CCI(34)-Durchgang - dann ist ein Wert von 5 erforderlich).

4.1.2 Wenn alle Bedingungen für den aktuellen Balken erfüllt sind oder wenn mehr als die erwartete Anzahl von Balken vergangen ist, setzen wir den Zähler auf 0 zurück.

4.1.3 Wenn die Bedingungen nicht erfüllt sind - erhöhen Sie den Zählerstand.

4.2 Wenn DN - ähnlich, nur für negative Werte.