Français
C ++ Forum

Vue d'ensemble sur faute et Lösungen dans 2.0b

 

Timotheus
P2CPP est un très nützliches Tool, dass qui geschriebenen Programme deutlich beschleunigt, justement chez komplexen et umfangreichen Berechnungen seulement im RAM. Im Durchschnitt ergibt sich ensuite chez einer solchen Anwendung une Beschleunigung um den facteur 10 ou bien plus. chez normalen Datenmengen ist XP dabei ausreichend, GDO arbeitet z.B. aussi avec XP11 et ist pour gewöhnlich bereits pour einigen Sekunden fertig. chez très grand Datenmengen nécessaire on mais une Portierung dans un autre Discours, comment z.B. Assembler ou bien P2CPP. un comparaison qui Geschwindigkeiten chez einem solchen Programme ergab z.B. cela folgende:

älterer ordinateur:
XP11: 181s
P2CPP: 3,5s

neuerer ordinateur:
XP11: 52s
P2CPP: 1,7s

qui Autor ist zwar pas plus erreichbar, pour diejenigen qui mais encore avant dem, zumindestens informatischen, mourir des Auteur une Vollversion conservé avons, ist cet Tool weiterhin très nützlich. Peut-être Sebastian König soudain verstorben, so comment Dietmar Horn, so dass il qui Software c'est pourquoi pas plus vertreiben peux. de qui Prospeed.dll J'ai eu z.B. aussi la fois une Vollversion käuflich bezogen, qui ist maintenant mais Freeware et pas verschollen.

comme Compiler eignet sich BCC55, welches es ici comme Freeware zum Télécharger gibt:  [...] 

qui Version 2.0b contient mais encore un paire faute. une Vue d'ensemble:

1. Mod

a% = b% Mod (c%*d%)
wird trop
nA = nB (_L(nC*nD) % _L());

Solution: P2CPP ou bien qui Compiler montrer une faute à. cet la ligne folgendermaßen simplifier:

$IFDEF P2CPP
z% = (c%*d%)
a% = b% Mod z%
$ELSE
a% = b% Mod (c%*d%)
$ENDIF

2. Inc et $IFDEF

une de $IFDEF et $ENDIF eingeklammerte Inc wird fälschlicherweise trop chacun Zeit eingebunden.

Solution: Pour Incs chercher et indépendant de bedingter Compilierung faire

3. &MemDC

a% = &MemDC
wird trop
nA = ReadLong(g_hMemDC, );

Solution: Compiler zeigt den faute à. là den faute folgendermaßen reparieren:

MCLS 100,100
$IFDEF P2CPP
'P2CPP: <INLINE_CPP>
nA = (long)g_hMemDC;
'P2CPP: </INLINE_CPP>
$ELSE
a% = &MemDC
$ENDIF

4. & Loop

& Loop dans einer normalen Whileschleife erhält encore qui Werte de XP10, pas XP11. cela est hierfür

Whileloop 10
a% = 1
Tandis que a% = 1
imprimer & Loop
a% = 0
Wend
Wend

wird sous P2CPP et jusqu'à XP10 zehnmal "1" ausgegeben, sous XP11 "1" - "10". sous XP11 muss & Loop daher einer lokalen Variable zugewiesen volonté et cet ensuite dans qui zweiten Boucle verwendet volonté, pas & Loop selbst. GDO peux qui &Loop's trouver qui pas de einer Whileloopschleife entourer sommes:  [...] 

5. a% > b%/c%

si a% > b%/c%
wird trop
si (_D(nA>nB) / _D(nC))

P2CPP klammert ici anders comme XP, cela qui Division Vorrang gibt, daher doit qui Klammern zur Kompatibilitätswahrung chez (">" ou bien "<") et ("/" ou bien "\") manuel gesetzt volonté. GDO peux alle Zeilen trouver dans denen une solche Zusatzklammer notwendig son pourrait:  [...] 

6. a%*b%\c%

a% = b%*c%/d% 'vollständige Division
e% = b%*c%\d% 'ganzzahlige Division
wird trop
nA = nB*_D(nC) / _D(nD);
nE = nB*(int)(nC / nD);

XP berechnet d'abord qui Multiplikation ensuite qui Division, e%=(b%*c%)\d%, P2CPP pouvoir es oui c'est ca andersrum. c'est chez vollständiger Division unproblematisch (Kommutativgesetz), chez ganzzahliger Division sommes qui Ergebnisse mais unterschiedlich. cela betrifft Zeilen avec "*" et "\". GDO peux alle Zeilen trouver dans denen une Zusatzklammer notwendig son peux:  [...] 

qui faute volonté dans einer Textdatei au cours de eines Durchlaufs zur grafischen représentation abgespeichert, si dans qui config.ini "P2CPP" sur "1" gesetzt ist.
 
22.02.2017  
 




Sven
Bader
là je wieder plus avec Profan2CPP trop 1faire habe dokumentiere je ici Dinge, sur qui je so stolpere. je benutze qui Version 2.0a

Den Anfang voudrais je avec dem Zeilenweise Einlesen de Fichiers faire

1.
cls
declare fichier$, la ligne$
datei$ = "test.txt"
Assign #1,fichier$
Reset #1

WHILENOT Eof(#1)

    Contribution #1,la ligne$
    imprimer la ligne$

ENDWHILE

Fermer #1
imprimer "fertig!"
waitkey
end

cet Beispiel funktioniert bestens avec sous Windows erzeugten Fichiers, avec Fichiers aus Linux/Unix/Mac Umgebungen venez es trop Fehlern. Profan2CPP scheint ici zwingend un CR LF comme Zeilenumbruch trop erwarten alors \r\n et pas seulement \n ou bien seulement \r

qui effet fällt dans meinen Tests unterschiedlich aus. avec VC++ (1998) fehlt chacun la ligne cela erste marque, là ici wohl cela fehlende "\r" übersprungen wird. chez Borland C++ 5.5 wird gefühlt alles zerhackt et on landet trop allem Unglück beim Lecture dans einer Endlosschleife.

une (si aussi Maillet)-Solution ist cela korrigieren qui Zeilenumbrüche et Sauver comme KOPIE. mon Solution ist pas entier net, là vous \r allez \r\n austauscht et après doppelte \n dans simple umwandelt. cela peux zuvor vorhandene le vide Zeilen dans qui Dossier effacer.
'Dossier korrigieren
Faible Bereich#, FileSize(fichier$)
BlockRead(fichier$, Bereich#, 0, FileSize(fichier$))
content$ = String$(Bereich#,0)
content$ = translate$(content$,Chr$(10),Chr$(13)+Chr$(10))
content$ = translate$(content$,Chr$(13)+Chr$(13),Chr$(13))
dispose Bereich#
Faible Bereich#, len(content$) + 1
String Bereich#,0 = content$
Assign #1, fichier$+".tmp"
OpenRW #1
BlockWrite #1, Bereich#, 0, len(content$)-1
Fermer #1
dispose Bereich#
'Kopie Zeilenweise auslesen sans Probleme
Assign #1,fichier$+".tmp"
Reset #1
i& = 0

WhileNot Eof(#1)

    Contribution #1,la ligne$
    getLine(la ligne$)

Endwhile

Fermer #1

2. Angeblich falsche paramètre-Anzahl

ca wird beim Syntaxcheck chez manchen Aufrufen angezeigt. il peut den faute ignorer, là qui Programme am Ende quand même korrekt courir. toutefois nervt es, es chez chacun Compilierung bestätigen trop doit et par-dessus peut-être. echte faute trop verpassen.

qui Solution steckt ici dans qui Dossier subfuncs.dat bzw. funcdb.dat im \data\ Verzeichnis de Profan2CPP, ici peut qui Parameterzahlen korrigiert volonté comment zum Beispiel ogl.outlinefont 2 statt 1 et ogl.pyramid avec 3 statt 2.




80 kB
Bezeichnung:p2cpp
Hochgeladen:04.08.2021
Downloadcounter91
Download
56 kB
Bezeichnung:subfuncs
Hochgeladen:04.08.2021
Downloadcounter85
Download
 
04.08.2021  
 




Sven
Bader
Einen hab je encore

3. Vorzeichen

un Vorzeichenminus erzeugt dans Kombination avec einem Minus-Operator une faute beim Compilieren.
cls
declare i&,j&
i& = 5
j&  = 10 - -i&'faute
j&  = 10 + -i&'ok
j&  = 10 - -1'faute
j&  = 10 + -1'ok
j&  = 10 + +1'faute
j&  = 10 - +1'ok
imprimer j&
waitkey
end

alors j& = 10 - -i& allez pas, j& = 10 + -i& dagegen funktioniert. c'est dabei égal si cela Vorzeichen à einer numéro ou bien Variable steht. un doppeltes Plus (Operator + Vorzeichen) allez aussi pas, là peux on naturellement cela Vorzeichen simple omettre.

qui Solution? une Klammer à numéro avec dem Vorzeichen: j& = 10 - (-1)
 
08.10.2021  
 




Sven
Bader
et avec ca zum Thema Abstürze , là je justement wieder so une le cas hatte...

cet treten gelegentlich (ensuite reproduzierbar) beim Übersetzen sur, alors si P2CPP "Übersetze..." anzeigt. qui Prozentzahl avant dem Absturz, gibt ici aussi une ungefähre concept de qui Stelle im Code.

Es venez ici wohl trop Zugriffsverletzungen, car beim Ausweichen sur vieille Systeme (Windows XP) fonctionne qui Übersetzung net par.

Folgende la ligne était beispielsweise pour une Absturz responsable.
factor! = 1.0 / Max(0.00001, sqrt(cross![0] * cross![0] + cross![1] * cross![1] + cross![2] *cross![2]))

chez mir hat déjà cela mathématique irrelvante Hinzufügen de Klammern geholfen, um den Absturz trop vermeiden:
factor! = 1.0 / Max(0.00001, sqrt((cross![0] * cross![0]) + (cross![1] * cross![1]) + (cross![2] *cross![2])))

Es scheint cependant une bestimmte la quantité "kritischer" Zeilen pour une Absturz nötig trop son, là je es dans einem kleinen Code pas reproduzieren konnte.

aussi dans qui Vergangenheit étions toujours Verkettungen vieler Operatoren qui ursache. qui Solution sommes toujours Klammern ou bien Teilrechnungen dans une variable zwischenspeichern.
 
20.10.2021  
 




Sven
Bader
Addfiles avec Unterverzeichnissen alors führendem Stern, funktioniert pas avec absoluten Pfaden.

ici landen zwar Fichiers dans qui Listbox aus dem angegebenen Verzeichnis mais qui Pfad zur Dossier ist stattdessen cela aktuelle Arbeitsverzeichnis et avec cela faux! dans historyPath$ steckt un absoluter Pfad. Beheben peut es sich, indem on avant qui Ausführung de AddFiles dans cela betreffende Verzeichnis wechselt.
ChDir historyPath$
AddFiles *historyPath$+"\\"+DateiName(dname$) +"*"
ChDir CurrentDir$'vorheriges Verzeichnis muss vorab gespeichert volonté

Regex
Match$("^(~s*)~b(?i)cat~b","   CAT and dog")
imprimer %MatchPos
Match$("~b(?i)cat~b","   CAT and dog")
imprimer %MatchPos
Match$("~S", "   CAT and dog")
imprimer %MatchPos

XProfan
1 Beliebig viele Whitespaces, ensuite cat comme ganzes mot (cas-insensitive)
4 comme ganzes mot (cas-insensitive)
4 erster pas-Whitespace

Profan2CPP
-1 abweichend
4 passt
1 abweichend

qui ici richtig liegt et pourquoi, es dans Profan einmal cela kleine et einmal cela grand ~S braucht, sais je pas, là je im Umgang avec Regex pas très erfahren suis.
 
21.03.2023  
 




Sven
Bader
cela Thema Klammern hatten wir déjà un paire la fois mais oui c'est ca cela glaube je encore pas:

Um Bedingungen avec ou bien bzw et (|, &) sollte toujours une Klammer, sonst ca va dans P2CPP pas:

faux
Long rtf#,0 = 60
Long rtf#,4 = ~CFM_FACE | ~CFM_CHARSET | ~CFM_COLOR

richtig
Long rtf#,0 = 60
Long rtf#,4 = (~CFM_FACE | ~CFM_CHARSET | ~CFM_COLOR)
 
21.11.2023  
 



répondre


Topictitle, max. 100 marque.
 

Systemprofile:

ne...aucune Systemprofil angelegt. [anlegen]

XProfan:

 Posting  Font  Smilies  ▼ 

s'il te plaît s'inscrire um une Beitrag trop verfassen.
 

Options du sujet

7.171 Views

Untitledvor 0 min.
Thomas Freier06.01.2024
HofK20.12.2023
Walter12.12.2023
Michael W.08.12.2023
plus...

Themeninformationen

cet Thema hat 2 participant:

Sven Bader (5x)
Timotheus (1x)


Admins  |  AGB  |  Applications  |  Auteurs  |  Chat  |  protection des données  |  Télécharger  |  Entrance  |  Aider  |  Merchantportal  |  Empreinte  |  Mart  |  Interfaces  |  SDK  |  Services  |  Jeux  |  cherche  |  Support

un projet aller XProfaner, qui il y a!


Mon XProfan
Privé Nouvelles
Eigenes Ablageforum
Sujets-La liste de voeux
Eigene Posts
Eigene Sujets
Zwischenablage
Annuler
 Deutsch English Français Español Italia
Traductions

protection des données


Wir verwenden Cookies seulement comme Session-Cookies à cause de qui technischen Notwendigkeit et chez uns gibt es aucun Cookies de Drittanbietern.

si du ici sur unsere Webseite klickst ou bien navigierst, stimmst du unserer Erfassung de Informationen dans unseren Cookies sur XProfan.Net trop.

Weitere Informationen trop unseren Cookies et en supplément, comment du qui Kontrolle par-dessus behältst, findest du dans unserer nachfolgenden Datenschutzerklärung.


d'accordDatenschutzerklärung
je voudrais keinen Cookie