Zeilen neu schreiben / auslesen
Übersicht

brandyBetreff: Zeilen neu schreiben / auslesen |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Ich habe ein kleines Problem mit dem Auslesen von Zeilen. Ich möchte ein Programm schreiben, das ermöglicht, "komfortabel" in eine bestimmte ini-Datei in einem Spiel (SWAT4) zu schreiben, da ein paar Clanmitglieder das nicht auf die reihe kriegen.
Ich habe im Prinzip schon den Hauptteil, nur irgendwie erkennt er die entpsrechende Zeile nicht. Das ist schwer zu erklären, deswegen poste ich mal die entsprechenden Zeilen: Code: [AUSKLAPPEN] GesuchteTaste$ = Key$+"=" While Eof(Ini$) = 0 Line$ = ReadLine(Ini$) Initialien$ = Mid(Line$, 1, 2) Print "Gesamte Zeile: "+Line$ Print "Die gesuchte Taste: "+Key$ Print "Daraus folgen die ersten zwei Buchstaben der Zeile: "+GesuchteTaste$ Print "Die zwei ersten Buchstaben der Zeile: "+Initialien$ Print "" Print "" Print "" If GesuchteTaste$ = Initialen$ Then Print "Treffer!" Print "" Print "" WaitKey End EndIf Wend CloseFile Ini$ Ich hab schon rumprobiert, nur ich weiß nicht, wieso er den String nicht erkennt. An sich klappt es ja, er zeigt ja alles schön an, nur leider wird scheinbar nicht erkannt, dass die Strings übereinstimmen. Ein kleiner denkanstoss, wo der fehler liegt würe mir reichen. |
||
![]() |
RallimenSieger des 30-EUR-Wettbewerbs |
![]() Antworten mit Zitat ![]() |
---|---|---|
wäre gut wenn du uns mal einen Auszug aus der Datei hier postest um das Problem genauer unter die Lupe zu nehmen.
einen Fehler hab ich schon gefunden wenn du eine Datei öffnest wird die ein Integerwert zurückgeliefert den man nicht in einer Stringvariablen speichern sollte sondern in einer Integervar. ini%= openfile("Datei.ini") |
||
[BB2D | BB3D | BB+]
|
brandy |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Der entsprechende Dateiabschnitt um den es geht ist dieser hier:
Code: [AUSKLAPPEN] [Engine.Input] . . . . . LeftMouse=Fire RightMouse=OpenGraphicCommandInterface | RightMouseAlias MiddleMouse=IssueComplianceOrInteract Tab=CommandInterfaceNextGroup Enter= Shift=ToggleRunning 0 Ctrl=HoldCommandForZulu Alt= Pause=GUICloseMenu CapsLock=ControlViewportAlias Escape=GUICloseMenu Space=GiveDefaultCommand PageDown= End=HideViewport Left= Up=ScrollChatUp Right= Down=ScrollChatDown Insert=ShowViewport Red Delete=CycleOfficer 1=CommandOrEquip Row_NumberKeys 1 2=CommandOrEquip Row_NumberKeys 2 3=CommandOrEquip Row_NumberKeys 3 4=CommandOrEquip Row_NumberKeys 4 5=CommandOrEquip Row_NumberKeys 5 6=CommandOrEquip Row_NumberKeys 6 7=CommandOrEquip Row_NumberKeys 7 8=CommandOrEquip Row_NumberKeys 8 9=CommandOrEquip Row_NumberKeys 9 0=CommandOrEquip Row_NumberKeys 10 C=Duck Q=LeanLeft E=LeanRight G=VoiceTalk H=EquipSlot 11 L=EquipSlot 14 M=ShowInGamePopup O=ShowInGamePopup P= S=MoveBackward T=OpenHudChat 1 X=NextFireMode Y=ToggleZoom F1=CommandOrEquip Row_FunctionKeys 1 F2=CommandOrEquip Row_FunctionKeys 2 F3=CommandOrEquip Row_FunctionKeys 3 F4=CommandOrEquip Row_FunctionKeys 4 F5=CommandOrEquip Row_FunctionKeys 5 F6=CommandOrEquip Row_FunctionKeys 6 F7=CommandOrEquip Row_FunctionKeys 7 F8=CommandOrEquip Row_FunctionKeys 8 F9=CommandOrEquip Row_FunctionKeys 9 F10=CommandOrEquip Row_FunctionKeys 10 F11=ServerVoteYes F12=ServerVoteNo Equals=EqualsPlus Comma=StrafeLeft Minus=Dash Period=StrafeRight Slash=NextWeapon LeftBracket=InventoryPrevious Backslash=ChangeHud RightBracket=InventoryNext MouseX=Count bXAxis | Axis aMouseX Speed=6.0 MouseY=Count bYAxis | Axis aMouseY Speed=6.0 MouseW= None= Cancel= Backspace=PlayerCommandInterfaceBack PageUp=ShowViewport Sniper home=ShowViewport Blue Select= Print= Execute= PrintScrn= Help= A=StrafeLeft B=Melee N=ShowInGamePopup D=StrafeRight F=IssueComplianceOrInteract i= j= K= R=Reload U= V=ToggleFlashlight W=MoveForward Z=OpenHudChat 0 NumPad0=HideViewport NumPad1=ShowViewport Red NumPad2=ShowViewport Blue NumPad3=ShowViewport Sniper NumPad4= NumPad5= NumPad6= NumPad7= NumPad8= NumPad9= GreyStar= Separator= NumPadPeriod=Duck GreySlash=shot F13= F14= F15= F16= F17= F18= F19= F20= F21= F22= F23= F24= NumLock= ScrollLock= LShift= RShift= LControl= RControl= Semicolon= Tilde= SingleQuote=Strafe Attn= CrSel= ExSel= ErEof= Play= Zoom= NoName= PA1= OemClear= MouseZ= MouseWheelDown=ScrollCommand Down MouseWheelUp=ScrollCommand Up Joy1= Joy2= Joy3= Joy4= Joy5= Joy6= Joy7= Joy8= Joy9= Joy10= Joy11= Joy12= Joy13= Joy14= Joy15= Joy16= JoyX= JoyY= JoyZ= JoyR= JoyU= JoyV= JoySlider1= JoySlider2= [SwatGui.SwatInputReset] LeftMouse=Fire RightMouse=OpenGraphicCommandInterface | RightMouseAlias MiddleMouse=IssueComplianceOrInteract Tab=CommandInterfaceNextGroup Enter= Shift=ToggleRunning 0 Ctrl=HoldCommandForZulu Alt= Pause=GUICloseMenu CapsLock=ControlViewportAlias Escape=GUICloseMenu Space=GiveDefaultCommand PageDown= End=HideViewport Left= Up=ScrollChatUp Right= Down=ScrollChatDown Insert=ShowViewport Red Delete=CycleOfficer Key1=CommandOrEquip Row_NumberKeys 1 Key2=CommandOrEquip Row_NumberKeys 2 Key3=CommandOrEquip Row_NumberKeys 3 Key4=CommandOrEquip Row_NumberKeys 4 Key5=CommandOrEquip Row_NumberKeys 5 Key6=CommandOrEquip Row_NumberKeys 6 Key7=CommandOrEquip Row_NumberKeys 7 Key8=CommandOrEquip Row_NumberKeys 8 Key9=CommandOrEquip Row_NumberKeys 9 Key0=CommandOrEquip Row_NumberKeys 10 C=Duck Q=LeanLeft E=LeanRight G=VoiceTalk H=EquipSlot 11 L=EquipSlot 14 M=ShowInGamePopup O=ShowInGamePopup P= S=MoveBackward T=OpenHudChat 1 X=NextFireMode Y=ToggleZoom F1=CommandOrEquip Row_FunctionKeys 1 F2=CommandOrEquip Row_FunctionKeys 2 F3=CommandOrEquip Row_FunctionKeys 3 F4=CommandOrEquip Row_FunctionKeys 4 F5=CommandOrEquip Row_FunctionKeys 5 F6=CommandOrEquip Row_FunctionKeys 6 F7=CommandOrEquip Row_FunctionKeys 7 F8=CommandOrEquip Row_FunctionKeys 8 F9=CommandOrEquip Row_FunctionKeys 9 F10=CommandOrEquip Row_FunctionKeys 10 F11=ServerVoteYes F12=ServerVoteNo Equals=EqualsPlus Comma=StrafeLeft Minus=Dash Period=StrafeRight Slash=NextWeapon LeftBracket=InventoryPrevious Backslash=ChangeHud RightBracket=InventoryNext MouseX=Count bXAxis | Axis aMouseX Speed=6.0 MouseY=Count bYAxis | Axis aMouseY Speed=6.0 MouseW= None= Cancel= Backspace=PlayerCommandInterfaceBack PageUp=ShowViewport Sniper home=ShowViewport Blue Select= Print= Execute= PrintScrn= Help= A=StrafeLeft B=Melee N=ShowInGamePopup D=StrafeRight F=IssueComplianceOrInteract i= j= K= R=Reload U= V=ToggleFlashlight W=MoveForward Z=OpenHudChat 0 NumPad0=HideViewport NumPad1=ShowViewport Red NumPad2=ShowViewport Blue NumPad3=ShowViewport Sniper NumPad4= NumPad5= NumPad6= NumPad7= NumPad8= NumPad9= GreyStar= Separator= NumPadPeriod=Duck GreySlash=shot F13= F14= F15= F16= F17= F18= F19= F20= F21= F22= F23= F24= NumLock= ScrollLock= LShift= RShift= LControl= RControl= Semicolon= Tilde= SingleQuote=Strafe Attn= CrSel= ExSel= ErEof= Play= Zoom= NoName= PA1= OemClear= MouseZ= MouseWheelDown=ScrollCommand Down MouseWheelUp=ScrollCommand Up Joy1= Joy2= Joy3= Joy4= Joy5= Joy6= Joy7= Joy8= Joy9= Joy10= Joy11= Joy12= Joy13= Joy14= Joy15= Joy16= JoyX= JoyY= JoyZ= JoyR= JoyU= JoyV= JoySlider1= JoySlider2= Es ist der Engine.Input abschnitt einer User.ini der Unreal-Engine 2, falls das jemandem was hilft. Der sieht eigentlich immer gleich aus, so z.b. bei America's Army. Das mit dem Integer bei openfile ist gut zu wissen. Wenn ich nun z.b. K eingebe, dann gibt er wie gesagt zwar die entsprechende information richtig aus, jedoch bleibt das erhoffte "Treffer" aus. |
||
![]() |
RallimenSieger des 30-EUR-Wettbewerbs |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hatte gerade Zeit für was einfaches!
Code: [AUSKLAPPEN] Type Zeilen Field Zeile$ End Type ; zum zwischenspeichern der Datei
key$="K"; suche nach... ;Datei einlesen INI%= ReadFile("datei.ini") If ini = 0 Then RuntimeError("Datei nicht gefunden") While Not Eof(INI) z.Zeilen = New Zeilen z\zeile = ReadLine (INI) Wend CloseFile INI% For z.Zeilen =Each Zeilen If AktivZumLesen=1 Then;erst wenn die Zeile "[Engine.Input]" gefunden wurde ist das aktiv und die Suche geht los ; Schleife verlassen da alle relevanten abgearbeitet If Instr(z\zeile,"[") Then Exit ; dieses wird erst ausgefüht wenn alle Daten von "[Engine.Input]" ausgeführt sind PositionGleich% = Instr (z\zeile,"="); das = Zeiechen suchen If PositionGleich% > 0 Then ;also nur wenn das = zeichen gefunden wurde GefundeneTaste$ = Left (z\zeile,PositionGleich-1) ;Tste rauskopieren aber ohne = WertDerTaste$ = Mid (z\zeile,PositionGleich+1);alles nach dem = Zeichen Print GefundeneTaste$ Print " Wert: " + WertDerTaste$ ;.... If Key$ = GefundeneTaste$ Then ;wichtig ist die Goss/Klein schreibung ;....Hier jetzt die Zeile abändern wie gewollt z\zeile = GefundeneTaste$ + "=" + "; Was_immer_da_dann_Stehen_soll" ;.... ;.... End If EndIf End If If AktivZumLesen=0 Then ;Zum lesen freischalten nach [Engine.Input] If Instr(z\zeile,"[Engine.Input]") Then AktivZumLesen=1 End If Next ;Datei speichern INI%= WriteFile("ini.bb") For z.Zeilen = Each Zeilen WriteLine (INI,z\zeile) Delete z ; den Eintrag aus der Liste löschen Next CloseFile INI% |
||
[BB2D | BB3D | BB+]
|
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group