Register for your free account! | Forgot your password?

Go Back   elitepvpers > Coders Den > AutoIt
You last visited: Today at 18:48

  • Please register to post and access all features, it's quick, easy and FREE!

Advertisement



DateiPatcher

Discussion on DateiPatcher within the AutoIt forum part of the Coders Den category.

Reply
 
Old   #1
 
Crack-wtf's Avatar
 
elite*gold: 0
Join Date: Feb 2012
Posts: 1,405
Received Thanks: 2,942
DateiPatcher

Hab ein Problem.

Ich will einen Sprachpatcher schreiben, der Zeile für Zeile eine Datei übersetzt.
Er holt sich aus einer datei die übersetzten Variablen, und überschreibt nach und nach die der originalen datei.

Allerdings geht mir das ganze zu langsam.
Ich nutze diese funktion zum bekommen der zeile eines strings.


Diese funktion braucht durchschnittlich 100 ms pro zeile.
Die datei die ich nutze hat 4761 zeilen.

Habe mir das ganze ausgerechnet und komme auf 7 Minuten.

Und das ist mir viel zu langsam.
Hat jemand einen Plan?
Crack-wtf is offline  
Old 11/11/2012, 08:28   #2
 
Achat's Avatar
 
elite*gold: 528
Join Date: Jan 2012
Posts: 2,127
Received Thanks: 2,403
Öffne die Datei mit
Code:
FileOpen
und schließe sie mit
Code:
FileClose
MfG
Achat is offline  
Old 11/11/2012, 13:30   #3
 
Crack-wtf's Avatar
 
elite*gold: 0
Join Date: Feb 2012
Posts: 1,405
Received Thanks: 2,942
Troll wo anders.

Ich habe mir jetzt folgendes gebastelt, und komme auf eine zeit von 1 Minute.


Geht es vielleicht noch schneller, oder kann man aus autoit nicht mehr rausholen?
Crack-wtf is offline  
Old 11/11/2012, 13:45   #4


 
Lawliet's Avatar
 
elite*gold: 2
Join Date: Jul 2009
Posts: 14,456
Received Thanks: 4,685
Warum "Troll" wo anders? Wenn du file Open nicht nutzt wird die Funktion ohnehin bei jedem Zugriff aufgerufen.
Lawliet is offline  
Old 11/11/2012, 14:10   #5
 
Crack-wtf's Avatar
 
elite*gold: 0
Join Date: Feb 2012
Posts: 1,405
Received Thanks: 2,942
Ach ich seh jetzt was er meint sry.
Ich dachte er will trollen.

Naja aber mit arrays ist es ohnehin schneller als mir fileread etc.
Nur leider nicht schnell genug xD

Das Problem ist, dass manche Zeilen in der datei nicht synchron mit der anderen sind.
Sonst könnte ich einfach die Arrays vergleichen.

PHP Code:
for $i 1 to $langdbo[0]
        
ProgressSet(100/$langdbo[0]*$iRound(100/$langdbo[0]*$i)&"%")
        
$tmp1 _StringBetween(String($langdbo[$i+1]), """=")
        
$tmp2 _StringBetween(String($langpak[$i]), """=")

        If 
$tmp1[0] =  $tmp2[0Then
            $langpak
[$i] = $langdbo[$i+1]
        EndIf
        ;
_ArraySearch($langdbo$langdbo[$i], 0001)
    
Next 
Ab der 6. Zeile sind die zeilen nicht mehr synchron.

Wenn ich allerdings einen array "einschieben" könnte und alle anderen arrays dabei nach vorne verschoben werden, würde es gehen.
Kenne allerdings keine funktion dafür.
Crack-wtf is offline  
Old 11/11/2012, 14:22   #6
 
Achat's Avatar
 
elite*gold: 528
Join Date: Jan 2012
Posts: 2,127
Received Thanks: 2,403
Quote:
Originally Posted by Crack-wtf View Post
Ich will einen Sprachpatcher schreiben, der Zeile für Zeile eine Datei übersetzt.
Und das ist mir viel zu langsam.
Einzelne Zeilen bekommst du mit
Code:
StringSplit($sString,Chr(13),2)
Von andauernden FileWrites ohne Handle in einer Schleife kann ich dir nur abraten, das ist nämlich sehr langsam. Du könntest am Ende ein mal ein Filewrite machen.

Quote:
Originally Posted by Crack-wtf View Post
Naja aber mit arrays ist es ohnehin schneller als mir fileread etc.
Nur leider nicht schnell genug xD

Das Problem ist, dass manche Zeilen in der datei nicht synchron mit der anderen sind.
Sonst könnte ich einfach die Arrays vergleichen.

PHP Code:
for $i 1 to $langdbo[0]
        
ProgressSet(100/$langdbo[0]*$iRound(100/$langdbo[0]*$i)&"%")
        
$tmp1 _StringBetween(String($langdbo[$i+1]), """=")
        
$tmp2 _StringBetween(String($langpak[$i]), """=")

        If 
$tmp1[0] =  $tmp2[0Then
            $langpak
[$i] = $langdbo[$i+1]
        EndIf
        ;
_ArraySearch($langdbo$langdbo[$i], 0001)
    
Next 
Ab der 6. Zeile sind die zeilen nicht mehr synchron.
Was bedeuten denn deine Variablen? Wo ist da jetzt deine Datei, die du einlesen willst?

MfG
Achat is offline  
Reply




All times are GMT +1. The time now is 18:48.


Powered by vBulletin®
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2026 elitepvpers All Rights Reserved.