|
You last visited: Today at 08:03
Advertisement
[Frage]FileOpen In Zeile 1 springen
Discussion on [Frage]FileOpen In Zeile 1 springen within the AutoIt forum part of the Coders Den category.
02/28/2011, 22:16
|
#1
|
elite*gold: 0
Join Date: Mar 2010
Posts: 32
Received Thanks: 1
|
[GELÖST]FileOpen In Zeile 1 springen
Guten Abend.
Ich habe folgendes Problem:
Für mein Projekt muss ich alle Dateien mit Size vom Mainfolder, von den Lower Foldern und den Loweren Foldern in eine .txt schreiben ...
Die Algorithmen dafür hab ich alle geschrieben und funzt alles makellos, nur gibt es einen kleinen Schönheitsfehler, den ich gerne behoben hätte:
Als erstes sollen die Ordner abgefragt werden + Size, damit ich aber die Size bekomme, muss ich erstmal alle Files abfragen ...
Und es wäre ja unnötig, diese dann nicht direkt in die Datei zu schreiben ...
Der Schönheitsfehler ist, dass die Abfrage erst jedes mal quer durch die Datei suchen müsste, bis sie die gekennzeichneten Ordner findet.
Deswegen hätte ich die Frage, ob ich bei dem geöffneten File zum Schreiben wieder in die erste Zeile springen könnte ...
Würde ich vorher eine rekursive Funktion einbauen, die erstmal die Ordnersizes rauskriqqt, würde das nämlich wieder auf Kosten der Performance gehen und Algorithmen sind ja so schon bekanntermaßen nicht die Schnellsten Verfahren.
Bitte um Antwort ( vielleicht fällt euch eine viel Bessere Methode ein, die ich nicht bedacht habe ) und Vielen Danke im Vorraus,
MfG
(KekZ -> ThornWithin)
|
|
|
03/01/2011, 08:11
|
#2
|
elite*gold: 20
Join Date: Oct 2010
Posts: 1,303
Received Thanks: 457
|
Soviel ich mitkriege willst du immer oben statt am Ende der Datei schreiben?
Versuchs mal mit FileWriteLine()
(KP obs geht -- gerade dabei AutoIt zu verlernen  )
|
|
|
03/02/2011, 16:38
|
#3
|
elite*gold: 0
Join Date: Mar 2010
Posts: 32
Received Thanks: 1
|
neh FileWriteLine war natürlich für mich die naheliegendste Lösung ...
Leider wird dies mit FileReadLine verwechselt, denn im Ggsatz zu FileReadLine, schreibt FileWriteLine einfach "Text"+@CRLF ans Ende der Datei ;D
|
|
|
03/02/2011, 16:41
|
#4
|
elite*gold: 0
Join Date: Feb 2010
Posts: 344
Received Thanks: 151
|
Nimm doch .ini!
Das ist viel einfacher, weil man da mit IniRead Sachen, die man mit IniWrite geschrieben hat einfach lesen kann.
|
|
|
03/02/2011, 17:33
|
#5
|
elite*gold: 280
Join Date: May 2007
Posts: 2,818
Received Thanks: 3,483
|
denn schreib dir halt selbst ne FileWriteFirstLine funktion o0
man könnte es zb einfach so machen:
PHP Code:
Func FileWriteFirstLine($file, $line)
Local $content = FileRead($file)
Local $fileHwnd = FileOpen($file, 2)
FileWrite($fileHwnd, $line & @CRLF & $content)
FileClose($fileHwnd)
EndFunc
|
|
|
03/03/2011, 11:06
|
#6
|
elite*gold: 0
Join Date: Mar 2010
Posts: 32
Received Thanks: 1
|
Code:
Func FileWriteFirstLine($file, $line)
Local $content = FileRead($file)
Local $fileHwnd = FileOpen($file, 2)
FileWrite($fileHwnd, $line & @CRLF & $content)
FileClose($fileHwnd)
EndFunc
Nein durch fileOpen gelangt man automatisch ans ende des Files
und zum thema ini ...
die algorithmen, die ich entwickeln musste, passen nieeemals mit ini zusammen, da man bei der ini immer den key wissen muss (im ggsatz zu fileRead/Write)
und genau den will ich ja rausfinden ;D
außerdem müsste ich wenn überhaupt das gesamte programm umschreiben und das is ja auch keine lösung ..
|
|
|
03/03/2011, 16:04
|
#7
|
elite*gold: 280
Join Date: May 2007
Posts: 2,818
Received Thanks: 3,483
|
hast du überhaupt eine ahnung wie funktionale programmierung im allgemeinen funktioniert?
fileopen springt überhaupt nirgendwo hin. es gibt lediglich ein handle einer datei zurück.
benutzen wir nun als parameter bei fileopen die 2, wird quasi eine vollkommen leere datei mit den name erzeugt, in die wir schreiben.
da wir vorher den kompletten inhalt von deiner datei mit fileread eingelesen und in content gespeichert haben, können wir diesen nun in die per fileopen geöffnete leere datei direkt eine zeile hinter die einzufügende schreben...
anstatt zu schreiben geht nich, könntest du wenigstens testen was man dir als hilfe anbietet..
|
|
|
03/03/2011, 16:55
|
#8
|
elite*gold: 0
Join Date: Mar 2010
Posts: 32
Received Thanks: 1
|
hast du überhaupt eine ahnung wie funktionale programmierung im allgemeinen funktioniert?
Ehm? o_O
ich hab nichts gegen deine tolle Funktion gesagt, ich hab nur etwas dagegen gesagt, dass das funktioniert...
das Problem ist, dass FileOpen ne leere Datei macht, genau wie du sagtest...
Aber ich hab in der Datei schon alle Files stehen, d.h. ich hätte da dann die Ordner drin, die Files aber nicht.
Ich habs jetzt umgeschrieben, jetzt macht der einfach ne neue Datei, in die er die Folder reinschreibt =)
anstatt zu schreiben geht nich, könntest du wenigstens testen was man dir als hilfe anbietet..
solche Kommentare kann man sich meiner Meinung nach sparen, da ich sowas nicht schreibe, bevor ich mir nciht ganz sicher bin/es getestet habe.
Danke für die Hilfe, hab jetzt alles geschrieben und kann jetzt mein Projekt weiterentwickeln.
~edit Thema-name [Gelöst]
|
|
|
03/03/2011, 18:57
|
#9
|
elite*gold: 280
Join Date: May 2007
Posts: 2,818
Received Thanks: 3,483
|
also...
angenommen du hast ne datei in der steht zb sowas:
Code:
blah
bleh
blubb
blih
bloh
angenommen die datei heist 'meinedatei.txt'
und du möchtest nun in die erste zeile von 'meinedatei.txt' ganz oben über alles andere 'neue zeile 1' schreiben...
dann nutzt du die von mir gepostete funktion mit
Code:
FileWriteFirstLine('meinedatei.txt', 'neue zeile 1')
sobald der befehl ausgeführt wurde, steht in der datei nun
Code:
neue zeile 1
blah
bleh
blubb
blih
bloh
falls ich deine frage falsch verstanden habe sry, aber meiner meinung nach ist das genau das was du gesucht hattest.
|
|
|
03/03/2011, 19:41
|
#10
|
elite*gold: 0
Join Date: Mar 2010
Posts: 32
Received Thanks: 1
|
omg ... sry hab das FileRead vollkommen übersehen
klar warum bin ich nich früher drauf gekommen *noobfehler*
danke dir
|
|
|
 |
Similar Threads
|
[Frage] Aus While springen
12/11/2010 - AutoIt - 8 Replies
Hey COM,
ich bin ein neuling im scripten und möchte mal eine Sache wissen, habe schon länger selber ausprobiert bin aber auf keine Lösung gekommen, und zwar wie ich aus einer While springen kann um diese Frage zu verdeutlichen möchte ich es meinem Script zeigen:
$variable = MsgBox (4+4096, "Dummheitstest", "Bist du dumm?" )
If $variable = 6 Then MsgBox (4096, "Antwort", "Das denke ich auch" )
While $variable = 7
MsgBox (4096, "Antwort", "Doch das denke ich schon" )
$2 = MsgBox...
|
[Frage] Ducken und Springen
11/19/2010 - CrossFire - 18 Replies
Hallo,
bin mal wieder neu am Crossfire runterladen und willl jetzt wissenw as bei letzen mal schon shice war. Und zwar musss man ja in Optionen das Ducken von Ctrl und STRG ändern und speichern. Leider ist das beim nächsten spielstart wieder weg. Dann kan man ja tastatur auf english wechslen aber iwie funzt das net hab auch schon gegooglet. Gibt es ne möglichkeit das das Ducken immer auf STRG bleibt ??
|
[FRAGE] AutoIt Zeile suchen + ändern
02/06/2010 - AutoIt - 9 Replies
Hi,
mal eine Frage, ich möchte nen Bot für Metin2 schreiben naja eigentlich ziemlich egal.
Dieser soll di metin2.cfg anpassen.
Jetzt möchte ich die beiden Zeilen:
WIDTH 1440
HEIGHT 838
|
Zeile überschreiben
07/16/2009 - AutoIt - 3 Replies
Hallo
Wie kann ich in einer txt Datei die erste Zeile überschreiben statt den neuen Text anzuhängen?
Gruß Rosemarie
|
All times are GMT +1. The time now is 08:03.
|
|